gpt4 book ai didi

iphone - 为什么 SWIFT 打印“可选(...)

转载 作者:行者123 更新时间:2023-11-30 10:13:26 26 4
gpt4 key购买 nike

如果下面的代码运行

var airports = ["YYZ": "Toronto Pearson", "DUB": "Dublin"]

print(airports["YYZ"])

为什么控制台会打印

Optional("Toronto Pearson")

为什么它打印Optional( withValue )而不仅仅是值?

为什么我需要在控制台中知道这一点?

最佳答案

Swift 有 optional types对于可能失败的操作。像 airports["XYZ"] 这样的数组索引就是一个例子。如果找不到索引就会失败。这代替了 nil 类型或异常。

解包可选类型的最简单方法是使用感叹号,如下所示:airports["XYZ"]!。如果值为nil,这将导致 panic 。

Here's some further reading.

您可以在 Swift 中链接选项类型上的方法,如果左侧值为 nil,它将提前退出到 nil,而不调用方法。当您在值和方法之间插入问号时,它会起作用,如下所示:airports["XYZ"]?.Method()。由于值为 nil,因此永远不会调用 Method()。这允许您延迟决定是否处理可选类型,并且可以稍微清理您的代码。

要安全地使用可选类型而不 panic ,只需使用 if 语句提供备用路径。

if let x:String? = airports["XYZ"] {
println(x!)
} else {
println("airport not found")
}

关于iphone - 为什么 SWIFT 打印“可选(...),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31622771/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com