【Swift】Optional笔记

2018-05-10  本文已影响0人  NiniaW
  1. Optional的本质是枚举类型。
public enum Optional<Wrapped> : ExpressibleByNilLiteral {
    case none
    case some(Wrapped)
    ...
}
  1. String?是optional,其值可以是nil,可以根据需要unwrap;
    String!也是optional,其值可以是nil,在调用时会自动unwrap;
    String不是optional,调用时发现其值为nil会被报错。

  2. 在Optional Chaining中,如果有一个表达式是optional的,那么整个表达式的结果就是optional的。所以以下代码会产生编译错误:

if aPerson.son?.firstName == "xxx" {
    ...
}

需要对表达式unwrap之后才能进行处理:

if let firstName = aPerson.son?.firstName {
    ...
}
上一篇 下一篇

猜你喜欢

热点阅读