【发布时间】:2016-02-16 14:02:08
【问题描述】:
据我了解
var perhapsInt : Int?
这会自动设置为.None 值。下面的代码 sn-p 确认(没有编译器错误)
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 时这不起作用。
当使用 let 时,我期待选项默认为 nil 的相同行为。我在这里遗漏了什么吗?
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,要么不是。
【问题讨论】:
标签: swift initialization init optional optional-variables