swift (二)

直接上代码:


// 运算符
// 一元运算符
// 1、负号运算符
var number1 = 10.0
var number2 = -number1
println((number2))
// 2、正号运算符
// 正号运算不做任何操作
var number3 = +number2
println((number3))

// eg:b = a++ 相当于 a 先赋值再完成自增,而 b = ++a 相当于 a 先完成自增,再去赋值
var number4 = number1++
number4++
println((number4))
number4--
println((number4))

// 二元运算符
// 1、赋值运算符
// 1.1 在 swift 当中,赋值语句没有任何返回值,不可以跟 if - else 相结合
let a:Double = 1.0

// 2、算术运算符
// 2.1、取余运算符
// 在 swift 当中,与 C 语言中的取余运算符有些不同,swift 中的取余运算符的左右两侧可以为小数,这也是 swift 有所改进的地方
var quyuNumber = 10.0 % 3.0
println((quyuNumber))

// 3、组合赋值运算符
var zuheNumber = 10
zuheNumber += 10
println((zuheNumber))

// 4、比较运算符

// 5、逻辑运算符
// 6、区间运算符  <<<<<< swift 新增的运算符
let aa = 1
let bb = 5
// 6.1、全闭区间
for qujianNumber in aa...bb {
    println((qujianNumber))
}
// 6.2、半开半闭
15..<25
for qujianNumber2 in 15 ..< 25 {
    println((qujianNumber2))
}

// 7、空合运算符  <<<<<< swift 新增的运算符
// 7.1 空合运算符 ?? 前面必须是可选类型的
// 7.2 空合运算符 ?? 前后的类型必须一致

// ! 表示这个变量是可选类型的,但是这个变量是一定有值的
// ? 表示这个变量是可选类型的,但是这个变量不一定有值的
var optionalNumber:Int! = 10
println(optionalNumber!)
// ?? 如果 optionalNumber 不为 空 则返回 optionalNumber的值;如果 optionalNumber 为 空,则返回 ??后面的值。
let kongheNumber = optionalNumber ?? 20
println((kongheNumber))

// 三元运算符
// 形式结构:a > b ? a : b

// 字符串
// 1、字符串的字面量 eg:"cacavca"字面量
var string1 = "cacavca"
var string2 = "wang" + "zhen" + "gang"
println((string1))
println((string2))
// 转义字符,类比 C 语言eg, \t  \n  \`  \``
var string3 = "\"wang\""        /// 加 双引号
println(string3)
var string4 = "\‘zhengang\‘"    /// 加 单引号
println(string4)

// 2、swift 中的字符串和 OC 中的字符串的区别
// 2.1、 没有可变类型和不可变类型之分,在 swift 中,字符串到底可变不可变,取决于声明变量的类型,如果定义的是 let 就是不可变,假如定义的是 var 就是可变
// 2.2、 swift 中的字符串是值类型,而 OC 当中,不加特殊声明的话是引用类型。不用担心内存问题,swift 已经做了优化。
var appendingStr1 = "wangzhigang"
var appendingStr2 = appendingStr1
appendingStr2 += "shuai"
println((appendingStr1))
println((appendingStr2))
// 2.3、 swift 中 String 类型 和 OC 中 NSString 做了完美的对接,换句话说,就是 swiftString 可以使用 NSString 的方法。

// 字符串的初始化
var initString:String = String(appendingStr1 + "age")
println((initString))
// 字符串拼接, + 可以进行字符串拼接,注意要拼接的变量必须是可变的。
initString += "hgkehg"
//initString.append("c")
println((initString))

// 字符串进行大小写转换
var changeString1 = "good boys"
// 改成大写
var changeString2 = changeString1.uppercaseString
println((changeString2))
// 改成小写
println((changeString2.lowercaseString))
// 首字母大写
println((changeString2.capitalizedString))

// 字符串插值
// 在 swift 输出语句中没有格式化占位符,想要实现这样的效果,我们要用到字符串插值格式 :"\()"
var insertNumber = 18
println("insertNumber = \(insertNumber)")

// swift 中的集合
// 1、数组
// 2、字典
// 3、set (了解)

// 区别:
// 1、在 swift 中的集合类也都是值类型,而 OC 当中的是引用类型;
// 2、在 swift 中,也是使用引用计数的概念来管理内存的,但是引用计数只适用于对象类型,值类型不需要管理;
// 3、swift 中,引用计数管理内存的方法与 OC 当中引用计数管理内存的方法,还是不同的,(见后面内容);
// 4、在 swift 中数组是可以存放任意类型,但是 OC 中,只能存放对象类型。

// 1、 Array
// 1.1、 swift 中,Array 也没有可变和不可变之分。而是取决于用什么关键字类修饰, var 就是可变的 , let 就是不可变的
// 1.2、 使用字面量来为一个数组赋值
// 当我们实现声明数组中元素的类型,内部的元素类型必须一致
var array = ["wang", "zhen", 9]
println((array))

// 数组增加元素
// 1、调用 append 方法,当我们调用 append 方法进行元素添加时,是添加到数组最后面。
array.append("wang")
println((array))
// 2、调用 += 添加元素
array += ["wzg1", "wzg2"]
println((array))
// 3、调用 insert 方法,把元素插入到指定位置
array.insert("wzg3", atIndex: 0)
println((array))
// 4、数组删除元素
//    调用 removeAtIndex 方法进行删除
array.removeAtIndex(0)
println(array)

// 5、改变数组中的元素
// 1、通过下标来更改元素
array[0] = "youmo"
println(array)
// 2、利用下面的方法,不及可以修改,而且可以删除元素。
array[0...3] = ["1", "2", "3"]
println(array)

// 6、数组查询
// 利用 for-in 来进行数组遍历
for value in array {
    println("value = \(value)")
}

// 使用全局 enumerate 函数返回一个由每一个数据项索引值和数据值组成的元组
for (index, value) in enumerate(array) {
    println("\(index):\(value)")
}

// 数组的初始化,声明存储固定类型的数组
// 1、
var initArray1:[String] = [String]() // 完成写法
var initArray2:[String] = [String](count: 3, repeatedValue: "wang")
println(initArray2)

// 2、
var initArray3:Array<String> = Array(count: 4, repeatedValue: "zhen")
println((initArray3))

// 3、使用构造方法创建的是由一个特定数据类型构成的数组

// 字典
// 1、使用字面量来给字典进行赋值
var dictionary = ["boy":"wang", "age":"12", "gender":"man"]
println(dictionary)
println(dictionary["age"])

// 增
// 使用下标增加键值对
dictionary["girl"] = "shiyingying"
println((dictionary))

// 删
// 调用 removeValueForKey 方法进行删除
dictionary.removeValueForKey("age")
println("delete : \(dictionary)")

// 改
// 1、使用键,修改键对应的值
dictionary["girl"] = "liujingran"
println((dictionary))
// 2、使用 updateValue 方法进行修改
// updateValue 方法可以进行修改,也可以进行添加键值对,当填入的键存在时,就会进行数据更新,把键对应的老值返回出来,当键不存在时,就会进行添加,返回是 nil 。
let returnValue = dictionary.updateValue("18", forKey: "age")
println("returnValue = \(returnValue), dictionary = \(dictionary)")

let returnValue2 = dictionary.updateValue("19", forKey: "class")
println("returnValue2 = \(returnValue2), dictionary = \(dictionary)")

// 查(遍历字典)
for (key , value) in dictionary {
    println("key = \(key)      value = \(value)")
}

// 字典初始化的方式也有两种
// 使用字典初始化方式进行创建的是固定键值类型的字典
// 1、
var initDiction1 : [String : String] = [String : String]()
// 2、
var initDiction2 : Dictionary<String, String> = Dictionary()

// 控制流
// 1、for-in 循环
for value in 1...10 {
    println(value)
}

// 当我们不需要使用区间的值的时候,我们可以使用‘_’告诉系统,相当于 while()
for _ in 1...10 {
    println("wangzhengang")
}

// 2、for 循环
for var index = 0 ; index < 10 ; index++ {
    println("index = \(index)")
}

// while 循环
var whileNumber = 0
while whileNumber < 10 {
    println("whileNumber = \(whileNumber)")
    whileNumber++;
}

// do-while 循环
do {
    println("111112")
}while(false)

// if-else 语句
var houValue = 20
if houValue <= 21 {
    println("小于等于21")
}
else {
    println("大于21")
}

// switch-case
// 1、 在 swift 当中是没有贯穿的,只会执行满足条件的语句,不用加 break 也不会贯穿
// 2、 在 swift 当中每一个 case 分支中都必须有一个语句,假如真不想写,可以加 break ,通过编译
// 3、 在 swift 当中 case 可以加多个条件
// 4、 可以使用 fallthrough 实现贯穿
// 5、 在 swift 当中, switch-case 可以进行值得绑定
// 6、 在 swift 中,switch-case 可以进行区间匹配
var switchNumber = 12
switch switchNumber {
case 2, 3, 6, 10:
    break
case 11:
    println("11")
case 12, 123:
    println("I am 12")
    fallthrough
case 13:
    println("I am 13")
default :
    println("qita")
}
// 5、 在 swift 当中, switch-case 可以进行值得绑定
var (x, y) = (10, 0)
switch (x, y) {
case (let xValue, 0):
    println(xValue)
case (0, let yValue):
    println(yValue)
default:
    println("others")
}
// 6、 在 swift 中,switch-case 可以进行区间匹配
var domianNumber = 50
switch domianNumber {
case 0...10:
    println("几块钱,穷逼")
case 11...100:
    println("几十块,也挺穷")
default :
    println("土豪!")
}

// 控制流中,我们会遇到的关键字 : break, continue, fallthrough
// break 在循环当中,跟 C 语言的语法规则一样,用来结束整个循环;
// continue 在循环当中, 跟 C 语言的语法规则一样,用来结束本次循环;

// 标签语句
// 当我们遇到的多个循环嵌套的时候,我们根据需求,想要关掉某个循环,此时我们就要使用标签语句,用来区别不同的循环,标签语句的定义语法:name : 写到想要标识的循环前面
wang: while true {
    for var labelNumber = 0; labelNumber < 100 ; labelNumber++ {
        if labelNumber == 5 {
            break wang
        }
        println("labelNumber = \(labelNumber)")
    }
}

版权声明:本文为博主原创文章,未经博主允许不得转载。

时间: 2024-10-17 04:22:25

swift (二)的相关文章

Swift(二,元组,可选类型,类型转化)

一,首先,元组是Swift中特有的,OC中没有元组相关类型,具体怎么用,看下面的例子吧 //1.使用元组来定义一组数据 let infoTuple = ("cjh",18,1.8) let nameTuple = infoTuple.0 print(nameTuple) let count = nameTuple.characters.count //2.1 普通元组的定义方式 let errorMsg = ("error",123) errorMsg.0 //2.

Swift 二维码扫描 简单实现

3.30看视频  学到了二维码简单的实现 还有一些动画的实现  今天就先记录一下二维码扫描的简单实现  不太好记手写一遍 学习的基础在于模仿嘛 创建一个实现二维码扫描的步骤 1.首先是懒加载创建 会话 输入设备  输出设备 // 先倒入框架 AVFoundation import AVFoundation //通过懒加载 创建输入设备 private lazy var deviceInput: AVCaptureDeviceInput? = { //获取设备摄像头 let device = AV

Swift(二)基础部分

数据类型 Swift 包含了 C 和 Objective-C 上所有基础数据类型.它还增加了 Objective-C 中没有的高阶数据类型比如元组(Tuple) 1.基础类型 Int整形和UInt无符号整形 Float和Double浮点型 Bool布尔型 Character字符型 String字符串类型 2.集合类型 Array数组 Set集合 Dictionary字典 3.高阶类型 Tuple元组 声明常量和变量 常量和变量必须在使用前进行声明,Swift中使用 let 声明常量,使用 var

Swift 新语言开发

全书目录: 一.Welcome to Swift 二.Language Guide 三.Language Reference /* 译者的废话: 几个小时前熬夜看了WWDC,各种激动,今年很有料啊!当看到Swift出来的时候,瞬间傻眼,又要学习新语言了.这篇文章来自苹果官方的<The Swift Programming Language>一书,500页左右,在苹果官网有下载.Swift大家都没实际用过,本翻译一定是有各种错漏的,各位多多包涵,我会不断更新修正的. --(博客园.新浪微博)葛布林

[iOS翻译]《The Swift Programming Language》系列:Welcome to Swift-01

本文转载至:http://www.cnblogs.com/yangfaxian/p/3765081.html 全书目录: 一.Welcome to Swift 二.Language Guide 三.Language Reference /* 译者的废话: 几个小时前熬夜看了WWDC,各种激动,今年很有料啊!当看到Swift出来的时候,瞬间傻眼,又要学习新语言了.这篇文章来自苹果官方的<The Swift Programming Language>一书,500页左右,在苹果官网有下载.Swift

iOS8开发~Swift(一)入门

一.概论及Swift介绍 iOS7刚公布多时候,苹果引入了JavaScriptCore.framework用来处理JavaScript,看到了能够接触其它编程语言的契机,使iOS程序猿不用吊死在OC这一颗树上.当但iOS8公布的时候.简直Hold不住了.新的开发语言<Swift>出现了!Swift是一种新的编程语言,基于C和OC.可用于Cocoa和Cocoa Touch编程.编写代码中充满互动性和乐趣,且语法简洁而传神,能够使应用程序执行飞快.Swift是以后iOS和OS X的项目开发语言的选

Swift入门篇-集合

一:数组 一:可变数组 定义:数组使用有序列表存储相同类型的多重数据. 格式: 第一种格式 var 变量: 类型[] = [变量值,变量值,...] 第二种格式 var 变量 =[变量值,变量值,...] 说明: 1:[变量值,变量值...] 这样表示数组 ,前提是 变量值的类型必须一值.(和其他语言有所不同) 2:上面两种格式都是定义一个数组,数组中的变量值的类型必须一致 3:第一种格式定义的数组,是直接定义数组,第二种格式定义的数组 是编译器通过类型值推导出是数组格式 注意点 1:常量关键字

Swift入门篇-基本类型(3)

一:元组 格式 变量或常量关键字 元组变量 = ( 变量,变量, -) 说明: 1: 元组变量还是一个变量,只不过表现方式和其他变量不一样 2:()括号里面可以放入N个变量组成 例子: import Foundation /* A是元组变量,()里面放着 整形 和字符串 元组类型为 整形和字符串 组成 */ var A = (1,"swift")//元组变量A 由 整形和字符串 组成 println(A) 运行结果 (1, swift) mport Foundation var B =

Swift入门篇-基本类型(2)

现在我也在学习Swift语言,常常去逛很多苹果社区和论坛,看到了圈子很多奇怪的现象,发现很多人都赶忙去翻译 Swift书籍 和 发布Swift的视频 .他们这种对新知识的探索精神我本人是很佩服的.但是我也觉得语言都没有发布几天,就赶忙去翻译书籍和Swift视频,然后讲SWift语言多么优美和多么好.我个人觉得他们都没有静下心来,去敲代码和研究Swift语言到底好在那里,而急于去翻译 未免也太草率了. 今天主要分享的是 swift中基本类型的 下半部分.如果您对 SWift 中变量和常量 不是很清