设想一种情况
- 后端返回给我们字段值, 这个字段值可能是空对象
- 或者我们与后端约定了一个字段 name, 但是根据业务name字段也可能不返回, 及我们在定义
model
的时候
要么
var name = ""
要么:
var name: String?
个人建议第二种, 明确表示name可能不存在, 符合业务语义
总结
所以在Swift
中可选型是为了表达一个变量为nil的情况,
Swift
中任何数据类型都可以是可选的, 亦即都可能为nil
表现形式
Optional
是一个泛型枚举结构
enum Optional<Wrapped> {
case none
case some(Wrapped)
}
所以定义可选型有两种方式
- ? (推荐使用)
let name: String?
// 可以给一个初始值
let name: String? = nil
- Optional (不推荐)
let name: Optional<String> = nil
网友评论