我想了解一些关于 swift 类型属性的知识。
Swift 编程语言说
For classes, you can define computed type properties only
所以计算属性本身并不存储值,而是计算出来的。我明白了。但我不明白这样的事情如何适用于类型属性。这些属性属于类本身,而不属于类的实例。
因此,如果您对此类计算类型属性使用 getter,您可能会使用什么来计算它?它不能是任何其他类型的属性,因为它们也只能是计算属性。你会得到一种计算属性的循环,因为没有任何存储的类型属性。
同样,我也不明白 setter 会做什么。如果调用计算类型属性的 setter,它可以设置什么?没有要设置的存储类型属性。
请您参考如下方法:
请记住,目前仅不支持存储的类属性。当您尝试使用它们时遇到的编译器错误——“类变量 尚未 受支持”——表明它们正在使用中。计算类属性本身不一定有意义。
但是,计算属性并不总是必须基于存储数据的值。就目前而言,您可以将它们用于与类关联的“静态”只读值,例如:
class var ThisIsAClassConstant: String { return "Woo" }
并且人们已经想出了存储关联值的方法,例如,在 this answer 中的前两个单例模式中,类属性将其状态存储在全局(但私有(private))变量或嵌套结构内的静态变量中。
这些显然有点“变通”,但它们是一种实现类存储的方法,但尚未正式实现。
