可选项用来处理值缺失的情况。可选项意味着:
- 这里有一个值,他等于x
或者 - 这里根本没有值
注意:
Swift的可选项可以表示任何类型的值得缺失,而不需要一个特殊值
Example:
Swift 的 Int 类型中有一个初始化器,可以将 String 值转换为一个 Int 值.
let numberString = "123"
let convertedInt = Int(numberString) //此时,convertedInt是个可选类型的Int?值
使用这个可选值convertedInt
- 强制展开:因为convertedInt是可选类型,使用时已确认convertedInt有值即可强制展开(convertedInt!)
if convertedInt != nil {
print(convertedInt!)
}else {
print("convertedInt is empty")
}
- 可选绑定:if/while语句来检测可选项内部的值,并赋值给一个变量或常量。
if let x = convertedInt {
// 如果convertedInt包含一个值,这个值就赋值给x新常量,且x只能用在if的当前分支,else分支无法使用
print(" ' (x) 'has an integer value ")
}else {
print("convertedInt could not be converted to an integer")
}
隐式展开可选项
- 可选项:
let possibleString : String? = "An optional string"
// 将可选的字符串赋值给possibleString, possibleString可选使用需强制展开
- 隐式展开可选项:
let assumedString : String! = "An implicitly unwrapped optional string"
// assumedString 隐式展开直接使用