就是声明一个可为 nil 的类型,然后需要注意一些使用过程中的语法,
let str: String? = "abc"
// 用法1 直接进行判断
if str != nil {
let count = str!.count
print(count)
}
// 用法2 使用绑定的方式
if let s = str {
// 如果 str 不是空,则把值赋给 s 然后执行大括号里的内容。
let count = s.count
print(count)
}
// 用法3 强制展开
let count = str!.count // 这里的问题,就是如果 str为 nil 的时候,就异常了, 除非你确定知道他不为 nil
可选项原理探究
String? 等同于 Optional<String>, 泛型类型为 String, 相关代码如下:
// 可选项原理探究
let str11: Optional<String> = "abc22"
// 等同于 str11: String?
if str11 != nil {
let count = str11.unsafelyUnwrapped.count
print(count)
}
网友评论