Swift隐式解析可选类型
隐式解析可选类型
Swift语言定义后缀!
作为标准库中命名类型ImplicitlyUnwrappedOptional<T>
的简写。换句话说,下面两个声明等价:
var implicitlyUnwrappedString: String!
var implicitlyUnwrappedString: ImplicitlyUnwrappedOptional<String>
上述两种情况下,变量implicitlyUnwrappedString
被声明为一个隐式解析可选类型的字符串。注意类型与!
之间没有空格。
你可以在使用可选的地方同样使用隐式解析可选。比如,你可以将隐式解析可选的值赋给变量、常量和可选特性,反之亦然。
有了可选,你在声明隐式解析可选变量或特性的时候就不用指定初始值,因为它有缺省值nil
。
由于隐式解析可选的值会在使用时自动解析,所以没必要使用操作符!
来解析它。也就是说,如果你使用值为nil
的隐式解析可选,就会导致运行错误。
使用可选链会选择性的执行隐式解析可选表达式上的某一个操作。如果值为nil
,就不会执行任何操作,因此也不会产生运行错误。
关于隐式解析可选的更多细节,见章节“隐式解析可选”。
隐式解析可选类型(Implicitly Unwrapped Optional Type)语法
隐式解析可选类型 → 类型 !