Swift:类中的计算类型属性

问题描述:

我想了解有关swift中类型属性的一些信息。Swift:类中的计算类型属性

雨燕编程语言说

对于类,可以定义计算类型的属性只

所以一个计算属性不存储值本身,而是它的计算方法。我明白了。但我不明白这样的事情可以适用于输入属性。这些属性属于类本身,而不属于它的一个实例。

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

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

请记住,目前仅存储的类属性不受支持。您尝试使用它们时遇到的编译器错误 - “类变量不支持而支持” - 表示它们正在运行。计算类属性并不一定有自己的意义

但是,计算出的属性并不总是基于存储数据的值。既然这样,你可以用它们来与类相关的“静态”只读值,说:

class var ThisIsAClassConstant: String { return "Woo" } 

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

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