下面的代码工作正常
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
我做了一点搜索,结果发现这是因为可选变量自动具有默认值nil
我猜:因为一旦设置了常量,就无法对其进行更改,如果自动接收到可选常量,nil那么它将保持为不可更改nil,这是非常愚蠢的,并且可能会对用户不利。
问题:我的大学并没有完全相信这个猜测,他告诉我一定有更多的理由。如果有人可以向我解释,我将不胜感激
谢谢
偶然的你
慕盖茨4494581
肥皂起泡泡