Swift:类中的计算类型属性

时间:2014-09-10 22:45:17

标签: properties swift

我试图了解swift中的类型属性。

Swift编程语言说

  

对于类,您只能定义计算类型属性

因此,计算属性本身不存储值,但会计算它。我明白了但我不知道这样的事情如何适用于类型属性。这些属性属于类本身,而不属于它的实例。

因此,如果您对此类计算类型属性使用getter,您可以使用什么来计算它?它不能是任何其他类型属性,因为它们也只能是计算属性。你会得到一种计算属性的循环,因为没有任何存储的类型属性。

同样地,我也没有得到一个二传手会做什么。如果你调用计算类型属性的setter,它可以设置什么?没有要设置的存储类型属性。

1 个答案:

答案 0 :(得分:3)

请记住,目前仅支持存储的类属性。当您尝试使用它们时得到的编译器错误 - "类尚未支持的类变量" - 表明它们正在进行中。计算类属性不一定 自己有意义。

但是,计算属性并不总是必须基于存储数据的值。就目前而言,您可以将它们用于"静态"与该类关联的只读值,例如:

    class var ThisIsAClassConstant: String  { return "Woo" }

人们已经想出了存储相关值的方法,例如,在this answer的前两个单例模式中,class属性将其状态存储在全局(但私有)变量中,或者嵌套结构中的静态变量。

这些显然有点"解决方法",但它们是一种实现类存储的方式,而它尚未正式实施。