常量和变量
概括
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
元组
将几个数值合并成一个新的对象,这个对象可以成为元组。
//如将一个整型和字符串,结合成一个新元组
let http404Error = (404,"Not Found")
//为元组的每个元素命名
let http200Status = (statusCode: 200,description: "OK")
Optionals
对于一个变量/常量,可能会包含自身类型数值外,还可能包含nil对象,则可以使用?进行修饰。
//说明其serverResponseCode可能为nil
var serverResponseCode: Int? = 404
Implicitly Unwrapped Optionals
对于一个变量/常量,其值不会出现nil,使用!进行修饰