<分区>
下面的代码可以正常工作
struct carConfi {
var owner: String?
let brand: String = "BMW"
var currentMile: Double = 2000
}
let tomCar = carConfi()
但是,如果我将属性 owner
的类型更改为常量,则初始化程序会出错
struct carConfi {
let owner: String? // Change to constant
let brand: String = "BMW"
var currentMile: Double = 2000
}
let tomCar = carConfi() //error: missing argument for parameter 'owner' in call
查了一下,原来是因为optional变量自动默认为nil
我猜: 因为一旦常量被设置,它就不能被改变,如果可选常量自动接收到一个nil
那么它将保持为一个不可改变的nil
这很愚蠢,可能违背用户意愿
问题:我的大学并不完全相信这个猜测,他告诉我一定有更多的理由。如果有人能向我解释一下,我将不胜感激
谢谢