Skip to content

单例与伴随对象 ​

object data 声明一份共享成员。通过声明名称读取字段和调用方法:

mcfpp
object data Settings {
    var reward: int = 10

    func amount(): int {
        return Settings.reward
    }
}

func main() {
    print(Settings.amount())
}

对象初始化按依赖关系执行一次。项目内对象是程序声明的一部分。导入库中的对象在需要时参与初始化。

同名 data 和 object data 可以组成模板与伴随对象。模板名称访问共享成员,实例访问实例字段:

mcfpp
data Reward {
    var amount: int = 5
}

object data Reward {
    var defaultAmount: int = 10
}

func main() {
    var reward = Reward()
    print(reward.amount)
    print(Reward.defaultAmount)
}

泛型模板与伴随对象使用匹配的只读参数声明。它们的成员仍按各自声明身份查找。