swift - Swift 中 init 属性的语法糖?

标签 swift

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/

相关文章:

ios - 从 Firebase 中删除 Google 或 Facebook 用户

ios - 在工具栏中输入 UITextField 时如何将 UITextField 移动到键盘上方以显示文本

ios - 防止一个闭包运行,直到另一个闭包完成

ios - 数据库获取只存在于它自己的函数中

swift - 如何在 NEVPNManager 中 stub 连接属性(NEVPNConnection)?

xcode - 根据内容动态改变UIWebview的大小

ios - 在 Swift 中组合两个数组以形成带有部分的表

ios - 我的 UICollectionView 不显示图像

ios - Reactive Cocoa - 然后是自定义信号与 UI 信号

ios - "Would you like to save this password "对话框阻止键盘出现