17. 可选链

文章目录
  1. 1. 可选链作为强制展开的代替品
  2. 2. 为可选链定义模型类
  3. 3. 通过可选链访问属性
  4. 4. 通过可选链调⽤方法
  5. 5. 通过可选链访问下标
  6. 6. 访问可选类型的下标
  7. 7. 多级链表关联
  8. 8. 在方法的可选返回值上进行可选链式调用
  1. Optional Chaining as an Alternative to Forced Unwrapping
  2. Defining Model Classes for Optional Chaining
  3. Accessing Properties Through Optional Chaining
  4. Calling Methods Through Optional Chaining
  5. Accessing Subscripts Through Optional Chaining
  6. Linking Multiple Levels of Chaining
  7. Chaining on Methods with Optional Return Values

可选链 是在当前可能为 nil的可选值上查询和调用属性、方法、下标的过程。如果可选值有值,则属性、方法或下标调用成功;如果可选值为 nil ,则属性、方法或下标调用 返回 nil 。多个查询可以链接在一起,如果链中的任何一个节点为 nil ,整个链会 返回失败。

可选链作为强制展开的代替品

为了反映可选链可以对 nil 值进行调用这一事实,可选链调用的结果总是一个可选值, 即使正在查询的属性、方法或下标返回一个不可选值。

为可选链定义模型类

你可以使用可选链来调用超过一级深度的属性、方法和下标。 这使你可以深入查看相互关联 类型的复杂模型中的子属性,并检查是否可以访问这些子属性上的属性、方法和下标。

通过可选链访问属性

赋值是可选链的一部分,也就意味着 = 操作符的右操作数不会被计算。

任何通过可选链给属性赋值的尝试都会返回一个 Void? 类型的值。这样你可以和 nil 比较来检查赋值是否成功:

通过可选链调⽤方法

你可以使用可选链来调用一个可选值的方法,以及检查调用是否成功。即使那个方法没有返回值你依然可以这样做。

通过可选链访问下标

访问可选类型的下标

如果下标返回一个可选类型的值,例如 Swift 中 Dictionary 的键下标,在下标的右括 号 后面 放置一个问号来链接其可选的返回值

多级链表关联

  1. 如果要检索的类型不是可选的,通过可选链,它将成为可选的。
  2. 如果您要检索的类型已经是可选的,那么它将保持原状。

在方法的可选返回值上进行可选链式调用

如果要在该方法的返回值上进行可选链式调用,在方法的圆括号后面加上问号即可。