为什么以下代码中的print(a)
不会显示为nil?
var a:Int?
a? = 4
print(a) //prints nil
var b:Int? = 4
print(b) //prints optional(4)
它们都不应该都包含4吗?有人可以解释吗?
答案 0 :(得分:6)
第var a: Int?
行声明了一个带有nil
值的可选变量。
第a? = 4
行使用可选链接将值分配给变量a
。但是,如果a
是nil
,则分配不会完成。这是您的情况,因为a
当前为nil
。您只需要a = 4
即可将4
的值分配给变量a
。
答案 1 :(得分:0)
代替.........一样吗?零,整个语句将不会运行
a? = 4 == nil = 4
做
a = 4