这是我的理解
var perhapsInt : Int?
这会自动设置为一个.None
值。下面的代码片段证实了这一点(没有编译器错误)
class MyClass {
var num1: Int = 0
var num2: Int?
init(num1: Int) {
self.num1 = num1
}
}
var newClass = MyClass(num1: 5)
newClass.num1 // prints '5'
newClass.num2 // prints 'nil'
我对可选初始化过程的理解是否正确?如果是这样,为什么当我更改num2
为let
.
我期待nil
在使用let
. 我在这里错过了什么吗?
class MyClass {
var num1: Int = 0
let num2: Int?
init(num1: Int) {
self.num1 = num1
// compiler error : return from initialiser without initialising all stored properties
}
}
...
我的问题是,这两种情况怎么可能是真的。不应该是其中之一。可选值会自动设置为.None
或不自动设置。