var aBoolean: Bool! // nilaBoolean = false // falseaBoolean // falseaBoolean == true // falseaBoolean == false // trueif aBoolean { "Hum..." // "Hum..."} else { "normal"}if aBoolean! { "Hum..."} else { "normal" // "normal"}
如果我已经声明了一个类似于var aBoolean的Boolean:Bool?,那么这将是预期的行为,但在这里,我没有得到它.
这是正确的行为吗?我没有找到任何文档.
谢谢!
第一个测试是检查aBoolean是否存储一个值而不是nil,它的作用是:if aBoolean { "Hum..." // "Hum..."else { "normal"}
第二个测试是检查存储在aBoolean中的实际布尔值,它是false:
if aBoolean! { "Hum..."} else { "normal" // "normal"}
这是在Swift书中的“隐含包装的可选项”部分中说明的.我认为隐式解包只是不适用于if语句.我同意这是奇怪的,但这里是苹果的例子:
你仍然可以像一个常规的可选项一样处理一个隐式解开的可选项,以检查它是否包含一个值:
let assumedString: String! = "An implicitly unwrapped optional string."if assumedString { println(assumedString)}// prints "An implicitly unwrapped optional string."
摘录自:苹果公司“Swift编程语言”iBooks. @L_403_0@
总结以上是内存溢出为你收集整理的swift – 可选布尔值的隐式展开全部内容,希望文章能够帮你解决swift – 可选布尔值的隐式展开所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)