变量和常量
定义
let
var
let x = 100
//: 常量一旦设置,不能再次修改,以下代码会报错
//x = 300
var y = 200
//: 变量设置之后,可以继续修改不会报错
y = 300
自动推导
- Swift能够根据右边的代码,推导出变量的准确类型
- 通常在开发时,不需要指定变量的类型
- 如果要指定变量,可以在变量名后使用:,然后跟上变量的类型
重要技巧:Option + Click 可以查看变量的类型
隐式转换
- Swift 对数据类型要求异常严格
- 任何时候,都不会做隐式转换
如果要对不同类型的数据进行计算,必须要显式的转换
let x2 = 10
let y2 = 10.5
let r1 = Double(x2) + y2
let r2 = x2 + Int(y2)
let & var 的选择
- 应该尽量先选择常量,只有在必须要对变量修改时,才需要修改为
let
- 在 Xcode 7.0 中,如果没有修改变量,Xcode 会提示修改为
let
Optional可选值
- Optional 是 Swift 的一大特色,也是 Swift 初学者最容易困惑的问题
- 定义变量时,如果指定是
可选的
- ,表示该变量
可以有一个值,也可以是 nil
- 默认值是
nil
- 定义变量时,在类型后面添加一个
?
- ,表示该变量是可选的
//: num 可以是一个整数,也可以是 nil,注意如果为 nil,不能参与计算
let num: Int? = 10
- 如果 Optional 值是
nil
- ,不允许参与计算或者调用方法
- 只有
解包(unwrap)
- 后才能参与计算
- 在变量后添加一个
!
- ,可以强行解包
注意:必须要确保解包后的值不是 nil,否则会报错
//: num 可以是一个整数,也可以是 nil,注意如果为 nil,不能参与计算
let num: Int? = 10
//: 如果 num 为 nil,使用 `!` 强行解包会报错
let r1 = num! + 100
//: 使用以下判断,当 num 为 nil 时,if 分支中的代码不会执行
if let n = num {
let r = n + 10
}
Optional可选值
- Optional 是 Swift 的一大特色,也是 Swift 初学者最容易困惑的问题
- 定义变量时,如果指定是
可选的
- ,表示该变量
可以有一个值,也可以是 nil
- 默认值是
nil
- 定义变量时,在类型后面添加一个
?
- ,表示该变量是可选的
//: num 可以是一个整数,也可以是 nil,注意如果为 nil,不能参与计算
let num: Int? = 10
- 如果 Optional 值是
nil
- ,不允许参与计算或者调用方法
- 只有
解包(unwrap)
- 后才能参与计算
- 在变量后添加一个
!
- ,可以强行解包
注意:必须要确保解包后的值不是 nil,否则会报错
//: num 可以是一个整数,也可以是 nil,注意如果为 nil,不能参与计算
let num: Int? = 10
//: 如果 num 为 nil,使用 `!` 强行解包会报错
let r1 = num! + 100
//: 使用以下判断,当 num 为 nil 时,if 分支中的代码不会执行
if let n = num {
let r = n + 10
}