class Person {
var name: String
var age: Int
func init(age: Int, name: String, /** ... **/) {
self.age = age
self.name = name
// ... much typing, much boring.
}
}
我可能有点懒惰,但明确输入每个属性感觉很像工作中的人类编译器。在 Swift 中为实例分配构造函数参数是否有任何语法糖?
最佳答案
查看 Default Initializers Swift 语言书籍的一部分。如果您要使 Person
成为结构而不是类,它会自动获得一个成员初始化:
struct Person {
var name: String
var age: Int
}
let p = Person(name: "Joe", age: 30)
为其所有存储属性定义默认值的类或结构获得一个默认初始化程序:
class Person {
var name: String = ""
var age: Int = 0
}
var p = Person()
p.name = "Joe"
p.age = 30
如果您在原始类型声明中声明任何您自己的初始化器,这些自动生成的初始化器就会消失,但您可以在扩展中添加其他初始化器。
关于swift - Swift 中 init 属性的语法糖?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26632206/