【问题标题】:Swift - assign local variables based on function parametersSwift - 根据函数参数分配局部变量
【发布时间】:2015-04-25 08:58:02
【问题描述】:

我有一个不可变类初始化器的初始化模式,其中所有参数都在创建时传入。
我基于此分配所有内部变量 - 所以有很多样板,我倾向于忘记事情并犯错误。
我很好奇是否有办法在函数声明中分配内部属性。有没有关键词(比如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
}

...如果有办法让函数 param 变量成为内部实例变量,会更简洁且不易出错:

init(self.param1, self.param2, ...)

【问题讨论】:

    标签: swift syntax constructor initialization keyword


    【解决方案1】:

    不幸的是,只有在没有其他初始化程序存在时才会生成您想要的初始化程序函数,即使这也仅限于结构体。

    我建议提交一个错误,这似乎是一个有点有用的功能。但是请记住,初始化器不能像普通函数一样被引用(即,您不能将它们存储在变量中)。

    【讨论】:

    • 只有结构有默认构造函数(如果没有提供 init 方法),类没有。
    • @MartinR:该死,你是对的。我会更新我的答案。
    猜你喜欢
    • 2023-03-24
    • 1970-01-01
    • 1970-01-01
    • 2012-08-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多