我遇到optionals
的问题,需要对以下情况有更深入的了解。
这是代码,
class X {
let b: Int! //not working
let c: Int? //not working
var q: Int! //working
var r: Int? //working
}
let x = X()
x.a
在上面的代码中,我仅创建了let
和var
以及optional
和implicitly unwrapped optional
的4种组合。
上面的代码给了我下面的编译器错误:
在不初始化所有存储属性的情况下从初始化器返回
问题:
如果b
和c
的值都默认为零,为什么要在init
中分配它们的值?并且如果需要,为什么不强制在q
中分配r
和init
?。