【问题标题】:In swift when print optional value when non optional在非可选时打印可选值时迅速
【发布时间】: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")

}

【问题讨论】:

标签: swift optional


【解决方案1】:

当你写作时

if let num2 = optionalNum { ...

您正在执行可选绑定

简单的英文意思是

如果optionalNum 包含一个值,那么

  1. 创建一个包含该值的新常量num2
  2. 并执行{ ... } 中的块
  3. 并在块内提供新的num2 常量

所以在块内num2 不是可选的。因此,当您打印它时,您会得到纯值。这就是它打印的原因

num2 is 5

【讨论】:

  • 官方用语是“可选绑定”。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-11-28
  • 2017-07-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-04-16
相关资源
最近更新 更多