【问题标题】:Swift: Computed type properties in classesSwift:类中的计算类型属性
【发布时间】:2014-11-04 17:51:06
【问题描述】:

我正在尝试了解有关 swift 中类型属性的一些信息。

Swift 编程语言说

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

所以计算属性本身并不存储值,而是计算出来的。我明白了。但我不明白这样的事情如何适用于类型属性。这些属性属于类本身,而不属于它的实例。

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

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

【问题讨论】:

    标签: properties swift


    【解决方案1】:

    请记住,目前仅不支持存储的类属性。当您尝试使用它们时出现的编译器错误——“类变量不支持”——表明它们正在使用中。计算的类属性不一定自己有意义。

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

        class var ThisIsAClassConstant: String  { return "Woo" }
    

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

    这些显然有点“变通办法”,但它们是实现类存储的一种方式,但尚未正式实施。

    【讨论】:

      猜你喜欢
      • 2021-04-16
      • 2016-06-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-10-10
      • 1970-01-01
      • 2019-05-03
      • 1970-01-01
      相关资源
      最近更新 更多