In swift when print optional value when non optional
In swift when print optional value when non optional
代码结果为:
num1 是可选的 (5)
num2 是可选的 (5)
num2 是 5
我想知道为什么在 if{} 中 num2 是一个可选值,但是打印 "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 { ...
您正在执行可选绑定。
用简单的英语就是
If optionalNum
contains a value, then
- create a new constant
num2
containing that value
- AND execute the block inside the
{ ... }
- AND make available the new
num2
constant inside the block
所以块内 num2
不是可选的。因此,当您打印它时,您会得到普通值。这就是它打印
的原因
num2 is 5
代码结果为:
num1 是可选的 (5)
num2 是可选的 (5)
num2 是 5
我想知道为什么在 if{} 中 num2 是一个可选值,但是打印 "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 { ...
您正在执行可选绑定。
用简单的英语就是
If
optionalNum
contains a value, then
- create a new constant
num2
containing that value- AND execute the block inside the
{ ... }
- AND make available the new
num2
constant inside the block
所以块内 num2
不是可选的。因此,当您打印它时,您会得到普通值。这就是它打印
num2 is 5