Optional可选
定义变量时,在类型后面添加一个?
,表示该变量是可选类型
可选类型,表示该变量可能有值,也可能是 nil
,默认值是 nil
在变量后添加一个 !
,可以强行解包
注意: 强行解包 必须要确保解包后的值不是 nil,否则会报错.
//swift推出可选类型(Optional), 表示一个变量或常量可能有值,也有可能没有值.时刻提醒我们变量可能没有值
可选类型的定义: 类型的后面加?
// 定义可选类型
let num: Int? = 10086
// Optional(10086)
print(num)
// value of optional type 'Int?' not unwrapped; did you mean to use '!' or '?'?
// !表示强制拆包. 需要确定可选一定有值.
let sum = num! + 10
// 定一个可选,没有赋值
var num2: Int?
// 可选没有值用nil表示
print(num2)
// 可选没有值,进行强制拆包: fatal error: unexpectedly found nil while unwrapping an Optional value
//let sum3 = num2!
// 在对可选操作的时候需要判断是否有值.
if num2 != nil {
let sum3 = num2! + 10
print("sum3: \(sum3)")
} else {
print("可选没有值")
}
// 可选绑定, 当可选有值的时候,会把num2!赋值给 num3
if let num3 = num2 {
print(num3)
} else { // 如果num2没有值.
print("num2没有值")
}
网友评论