关于 swift 的隐式解析可选类型,有一个小小的疑惑

2015-06-25 12:38:55 +08:00
 jaurung

swift文档上有一句:
注意:
如果你在隐式解析可选类型没有值的时候尝试取值,会触发运行时错误。和你在没有值的普通可选类型后面加一个惊叹号一样。

那么为啥

let str: String! = nil

println("str get (str)")

这样写不会报错呢?

4091 次点击
所在节点    Swift
1 条回复
nbndco
2015-06-25 13:29:16 +08:00
为什么这行命令取值了?取值是要加!的。
这里用到的是String Interpolation,因为String实现了Printable,估计内部实现是str?.description,根本就不会取nil的值。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/201034

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX