结构基础知识

struct Repository {
    let identifier: Int
    let name: String
    var description: String?
}

这定义了一个 Repository 结构,它有三个存储的属性,一个整数 identifier,一个字符串 name 和一个可选的字符串 descriptionidentifiername 是常量,因为它们是使用 let-keyword 声明的。在初始化期间设置后,无法修改它们。描述是一个变量。修改它会更新结构的值。

如果结构类型没有定义任何自己的自定义初始值设定项,则它们会自动接收成员初始值设定项。即使结构存储了没有默认值的属性,该结构也会接收成员初始值设定项。

Repository 包含三个存储的属性,其中只有 description 具有默认值(nil)。此外,它没有定义自己的初始化器,因此它免费接收成员初始化器:

let newRepository = Repository(identifier: 0, name: "New Repository", description: "Brand New Repository")