如果运行以下代码
var airports = ["YYZ": "Toronto Pearson", "DUB": "Dublin"]
print(airports["YYZ"])为什么控制台要打印?
任择(“多伦多皮尔逊”)
为什么它要打印可选( withValue )而不仅仅是值?
我为什么要在控制台里知道呢?
发布于 2015-07-25 04:04:41
Swift为可能失败的操作提供了可选类型。像airports["XYZ"]这样的数组索引就是一个例子。如果找不到索引,它将失败。这代替了nil类型或异常。
打开可选类型的最简单方法是使用感叹号,如下所示:airports["XYZ"]!。如果值为nil,则会引起恐慌。
这是一些进一步的阅读。
您可以在Swift中链接选项类型的方法,如果左边的值是nil,它将提前退出到一个nil,而无需调用一个方法。当您在值和方法之间插入问号时,它会工作,比如:airports["XYZ"]?.Method()。因为值是nil,所以从不调用Method()。这允许您延迟是否处理可选类型的决定,并可以稍微清理代码。
要安全地使用可选类型而不引起恐慌,只需使用if语句提供备用路径即可。
if let x:String? = airports["XYZ"] {
println(x!)
} else {
println("airport not found")
}https://stackoverflow.com/questions/31622771
复制相似问题