我有一个不可变类初始值设定项的初始化模式,其中所有参数都在创建时传入。
我基于此分配所有内部变量 - 所以有很多样板,我往往会忘记事情并犯错误。
我很好奇是否有办法在函数声明中分配内部属性。有没有一个关键词(比如inout
)?
例如现在:
private var param1
private var param2
private var param3
...
private var paramN
init(param1, param2, param3, ..., paramN) {
self.param1 = param1
self.param2 = param2
self.param3 = param3
...
self.paramN = paramN
}
。如果有一种方法可以让函数参数变量成为内部实例变量,会更干净且更不容易出错:
init(self.param1, self.param2, ...)
不幸的是,只有在不存在其他初始值设定项时才生成所需的初始值设定项函数,甚至这仅限于结构。
我建议提交一个错误,似乎是一个有用的功能。但请记住,初始值设定项不能像普通函数那样被引用(即你不能将它们存储在变量中)。