我在Swift Tests源代码中找到了一个有趣的函数:
func test(_ v: A????, _ cast: (A????) -> B?)
Run Code Online (Sandbox Code Playgroud)
由于Type?只是语法糖Optional<Type>,这意味着参数的类型v可以重写为Optional<Optional<Optional<Optional<A>>>>.
我知道这个功能是用来测试可选类型,所以它肯定是过分的论据去v和cast,但什么是实际使用具有"可选的可选等"的 输入Swift(如果有的话)?
当您访问数据时,这些情况有时会在 Swift 中发生。
一个示例是,如果您有一个具有可选值类型的字典,然后您在该字典中查找一个值:
let rockStars: [String: String?] = ["Sting": nil, "Elvis": "Presley", "Bono": nil, "Madonna": nil]
let lastName = rockStars["Elvis"]
print(lastName as Any)
Run Code Online (Sandbox Code Playgroud)
Run Code Online (Sandbox Code Playgroud)Optional(Optional("Presley"))
发生这种情况是因为当键不存在时字典查找可能会失败,并且nil在这种情况下会返回。因此,字典查找的返回类型必须是包装在可选值中的值类型。从字典中查找rockStars会返回一个String??.
| 归档时间: |
|
| 查看次数: |
86 次 |
| 最近记录: |