【发布时间】:2017-01-30 16:52:41
【问题描述】:
在 Xcode 8 发布版本中,我发现了一个奇怪的场景。
这里是代码,
let implicitlyUnwrappedOptionalString: String! = "implicitlyUnwrappedOptionalString"
let foo = implicitlyUnwrappedOptionalString
print(implicitlyUnwrappedOptionalString)
print(foo)
结果如下:
implicitlyUnwrappedOptionalString
Optional("implicitlyUnwrappedOptionalString")
以上这些表明,当我将 隐式展开的可选 分配给没有显式类型的变量时,该类型将被推断为可选类型,而不是原来的类型,即 隐式展开的可选。
我的 Xcode 已经更新到 8。任何人都可以验证 Xcode 7.x 中的行为吗?
变化是由于 Swift 版本变化还是 Xcode?p>
【问题讨论】:
-
是的,Xcode 7/Swift 2 没有发生这种情况。我在使用 Xcode 8 测试版时也注意到了这一点。这肯定是 Swift 3 的东西,因为新行为不依赖于使用的 SDK。