常量和变量
概括
Swift只包含变量(var),常量(let)两种值。对于两者而言,相同点都是对象的引用,不同点在于常量的值不可以在声明后不可改变,变量则可以
- //变量
- var welcome = "Hello!"
- welcome = "Bonjour!"
- let languageName = "Swift"
- //出错!常量不可以改变
- languageName = "Swift++"
声明
Swift会根据变/常量判断其数值类型,声明可不指定类型,也可指定类型
- //不指定类型
- let myConst = 10
- var myVar = 0
- // 指定类型
- var welcomeMessage: String
- var red,green,blue: Double
命名
变量,常量不可以包含空格,数学符号,箭头,unicode私有或者不可用的字符,不可数字开头
变量,常量可以使用unicode字符进行命名。xcode使用 ctrl+cmd+space打开添加emoji
分号
Swift中每行的结尾可以不写分号
但如果一行代码中需要写入两行语句,可以使用分号进行区分
- let cat = "miaomiao"; println(cat)
注释
和c/c++/oc一样,单行注释使用// 多行使用/**/
Swift新增了注释嵌套
- /* start of the first multiline comment
- /* second multiline comment */
- end of the first multiline comment */
数值
数值声明
十进制不需要前缀
二进制前缀
进制 | 前缀 |
---|---|
十进制 | 无前缀 |
二进制 | 0b |
八进制 | 0o |
十六进制 | 0x |
同一个数字不同进制声明
- let decimalInteger = 17
- let binaryInteger = 0b10001 // 17 in binary notation
- let octalInteger = 0o21 // 17 in octal notation
- let hexadecimalInteger = 0x11 // 17 in hexadecimal notation
科学计数法
十进制的科学计数法:数值a + e +指数n = a*10^n
十六进制的科学计数法:数值a + p +指数n = a*2^n
1.25e2 即 1.25 x 10^2= 125.0
0xFp2 即 15 x 2^2 = 60.0
浮点数转整型精度问题
浮点数转整型时,会将小数点后的取掉,只取小数点钱的整型数值
- let float1 = 1.00001
- let float2 = 1.99999
- let integer1 = Int(float1) //为1
- let integer2 = Int(float2) //为1
技巧
为方便数值的声明,可以数值前面可以使用多个0,数字之前可以使用下划线以方便数字的读取
- let num = 1_000_000.000_000_1
别名
为已存在的数据类型声明一个别名
- typealias AudioSample = UInt16
元组
将几个数值合并成一个新的对象,这个对象可以成为元组。
Optionals
对于一个变量/常量,可能会包含自身类型数值外,还可能包含nil对象,则可以使用?进行修饰。
- //说明其serverResponseCode可能为nil
- var serverResponseCode: Int? = 404
Implicitly Unwrapped Optionals
对于一个变量/常量,其值不会出现nil,使用!进行修饰