Swift可选项-为什么var a:Int?一种? = 4返回零

时间:2018-07-29 16:46:51

标签: swift optional

为什么以下代码中的print(a)不会显示为nil?

var a:Int?
a? = 4
print(a)  //prints nil

var b:Int? = 4
print(b) //prints optional(4) 

它们都不应该都包含4吗?有人可以解释吗?

2 个答案:

答案 0 :(得分:6)

var a: Int?行声明了一个带有nil值的可选变量。

a? = 4行使用可选链接将值分配给变量a。但是,如果anil,则分配不会完成。这是您的情况,因为a当前为nil。您只需要a = 4即可将4的值分配给变量a

答案 1 :(得分:0)

代替.........一样吗?零,整个语句将不会运行

a? = 4       ==   nil = 4

a = 4