Fer*_*ics 3 ios optional-values swift
我用快速的语言随处可见,人们使用if语句测试可选值,以便他们可以通过两种方式安全地强制解包:
if optionalValue != .None {
... some code ...
}
Run Code Online (Sandbox Code Playgroud)
要么
if optionalValue != nil {
... some code ...
}
Run Code Online (Sandbox Code Playgroud)
有什么区别,它能以某种方式以某种方式影响我的应用程序/代码吗?什么更好?
在正常使用中没有区别,它们是可以互换的..None是enum实现的nil(缺少)值的Optional<T>枚举表示.
实现协议的类型以及运算符的重载等同于.None和.nilOptional<T>NilLiteralConvertible!===
如果您希望nil可分配,则可以在自己的类/结构/枚举中实现该协议,例如:
struct MyStruct : NilLiteralConvertible {
static func convertFromNilLiteral() -> MyStruct {
return MyStruct() // <== here you should provide your own implementation
}
}
var t: MyStruct = nil
Run Code Online (Sandbox Code Playgroud)
(注意,变量未声明为可选)
| 归档时间: |
|
| 查看次数: |
2303 次 |
| 最近记录: |