Tag: 计算

Swift计算的属性

在第一篇文章中,我将介绍计算属性以及如何使用Getters和Setters,以尝试将我在使用Swiftlang功能时学到的东西写在纸上。 计算属性 在跳入之前,需要了解一些重要的事情: 将它们视为一段代码,每次调用它们时都会计算出一个值 计算属性始终是变量(从不常量) 这些类型的属性可以在类,结构,枚举的内部或外部使用 当使用计算属性时要当心,因为它们的值可能在每次调用它们时都会改变。 而且,如果使用了setter,它们可以在其封闭范围内更改任何其他值(更多信息在下面)! 定义计算属性 首先,您必须编写一个变量并显式声明属性的类型,以帮助编译器知道将为其分配哪种类型的值。 不要分配默认值。 而是在类型声明之后打开方括号,然后开始使用吸气剂。 由于变量的值是通过使用setter和getter进行设置和检索的,因此您至少需要在方括号内使用getter,如下所示: 上面的代码中发生了什么: 您可以看到Int类型的计算属性,并且在其括号内,我使用吸气剂返回x + y的结果 一旦计算出的属性被调用,getter就被执行并且变量被赋值给结果 清理注意事项 :只要不实现setter,就不需要编写get {}。 这将加快您的写作速度 让我们谈谈获取器和设置器: 使用get {} get关键字使计算出的属性可读 使用getter可以从计算属性读取数据 在方括号内,编写代码,一旦计算属性被调用,该代码将被执行 访问该属性将执行getter 尝试为计算变量分配一个值。 发生了什么? 您不能将值分配给没有设置器的计算属性。 使用set {} 要了解的几件事: 关键字s et使计算出的属性可写。 没有它,您将收到以下错误: 无法分配值[您的计算属性的名称],它是仅获取属性。 当您为计算的属性分配值时,您正在调用设置器 该值可在设置器的括号内访问 您可以在set关键字后的括号内分配一个本地名称。 该局部变量将传递的值传递给计算属性(如在下例中使用newSalaryPerWeek所示) 如果您未在setter定义中提供分配值的名称,则编译器将自动分配newValue的名称。 通过设置,您可以更改同一作用域中其他属性的值,这是您必须知道链接到计算属性的所有依赖项的原因。 有点令人困惑,但这是计算属性能力的一个很好的例子,如下所示: 为什么不使用setter更改其自己的计算属性的值? 因为我会陷入一个无限循环中,一次又一次地将值分配给它自己。 在家尝试this 让我们将此知识应用于其他几个计算属性,但是这次在Enums / Structs / Classes内部,只是看到没有任何变化: 枚举中的计算属性 […]