【发布时间】:2016-11-09 13:47:15
【问题描述】:
代码结果是:
num1 是可选的(5)
num2 是可选的(5)
num2 是 5
我想知道为什么在 if{} num2 是一个可选值,但是 print "num2 is 5"
var optionalNum : Int? = 5
let num1 = optionalNum
print("num1 is \(num1)")
if let num2 = optionalNum {
print("num2 is \(optionalNum)")
print("num2 is \(num2)")
} else {
print("optionalNum does not hold a value")
}
【问题讨论】:
-
因为在
if let num2 = optionalNum {这一行中,您只是将optionalNum解包 转换为num2,这不再是可选的了。 -
我强烈推荐阅读Optionals section of the Swift Programming Language Guide(特别是可选绑定)
-
还有一个关于这个主题的优秀 SO 文档页面,stackoverflow.com/documentation/swift/475/conditionals/1560/…