V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
jaurung
V2EX  ›  Swift

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

  •  
  •   jaurung · 2015-06-25 12:38:55 +08:00 · 4063 次点击
    这是一个创建于 3440 天前的主题,其中的信息可能已经有所发展或是发生改变。

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

    那么为啥

    let str: String! = nil

    println("str get (str)")

    这样写不会报错呢?

    1 条回复    2015-06-25 13:29:16 +08:00
    nbndco
        1
    nbndco  
       2015-06-25 13:29:16 +08:00
    为什么这行命令取值了?取值是要加!的。
    这里用到的是String Interpolation,因为String实现了Printable,估计内部实现是str?.description,根本就不会取nil的值。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2642 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 22ms · UTC 05:47 · PVG 13:47 · LAX 21:47 · JFK 00:47
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.