Tag: 计算属性

开始进行Swift编程第16部分-inout,Lazy,Getters和Setters

之前,我们介绍了使用泛型和枚举进行闭包。 开始进行Swift编程第15部分-具有泛型和闭包的枚举 在上一篇文章中,我们讨论了错误处理。 medium.com 在本课程中,我们将逐步摆脱所有这些问题,并讨论一些可使您的代码更有效率的事情。 进出 inout是将参数传递给函数时使用的关键字。 当我们想要将变量传递给函数并修改该变量的值而不创建新变量时,使用inout 。 让我们看一下如何使用inout和不使用inout修改值。 懒 创建类时,几乎总是创建该类使用的属性。 这些属性可能只是我们打开或关闭以确定类的当前状态的标志,或者它们可能是更大的对象,例如新类用来执行某些操作的另一个类。 让我们看一个例子,我保证它是相关的。 吸气剂和二传手 获取器和设置器是计算属性的一部分。 他们是与属性观察者didSet和willSet 。 您可能还记得,当计算属性即将更改或已更改时, didSet和willSet在那里执行额外的任务。 获取器和设置器为我们提供了可用于设置值或检索值的逻辑。 这是一个例子

快速的属性是什么?

在初学者级别,所有开发人员都对属性有一些疑问,例如什么是属性?什么类型的属性? ,什么时候使用哪种类型? 。 所以在这里我想快速给出一些有关属性的想法。 有什么属性? “简单来说,属性具有一些您想在应用程序或班级中出于任何原因访问的值” 例如 :- var intVal = 2; var strVal =“世界你好” 因此,在这些示例中,“ intVal”和“ strVal”是具有某些值的属性。 但是现在的问题是,财产是否总是具有某些价值? 没有任何动态价值? 答案是“是的,它可以具有运行时间(动态值)”。 所以现在属性类型出现了。 它有两种类型: 1)储物 2)计算财产 它以常量和可变值作为实例。 例如 1)变量a = 5 在这里,变量“ a”存储整数值5。我们使用var关键字定义了变量“ a”,这意味着其值b可以更改。 print(a)// 5 a = 7 //更新a的值 print(a)// 7 2)让a = 5 它的工作原理同上,但不同之处在于它的值无法更改。 a = 7 //编译器抛出错误 3)var a:整数! 这里我们没有给变量a赋值。 因此,Int的默认值会自动分配给变量a。 因此,当您不需要通过任何计算获得任何动态值时,可以使用var或let来使用存储的属性。 在开发过程中,某些情况下,由于计算能力有限或其他原因,您只想在需要时才创建一些对象。 […]

函数与计算属性-使用什么?

如果任何调用被认为是昂贵的,会在多次调用时引发错误或返回不同的结果-首选函数。 如果调用便宜,则不会引发错误,不会返回相同的结果,也不会缓存第一次调用的结果-计算属性可能会满足您的需求。 – – – – – – – – – – – – – – 要么 – – – – – – – – – – – – – – 如果您的代码执行了某个动作并返回了例如该动作的结果的描述,那么您应该首选函数。 如果您的代码计算出一个属性,但是从用户的角度来看,这可能是一个存储的属性,或者可能是一个存储的属性,需要先更新某些缓存的值,那么您应该更喜欢计算的属性。 例如 ,我们有CookieFactory类来烘烤一些cookie。 我们需要它来查看成分并决定要制作哪种曲奇。 它需要检查有多少成分可用以确定批次大小。 然后,它将需要分割并创建cookie。 听起来很复杂,所以要使用函数是这里的方法。 遵循统一访问原则 模块提供的所有服务都应通过统一的符号表示,无论是通过存储还是通过计算实现,都不应背叛。 —伯特兰·迈耶(Bertrand Meyer) 属性表示实例的固有质量,而方法则执行操作。 方法有参数; 属性没有。 对于有副作用的任何调用,最好使用方法。 如果某个方法执行某些操作(例如,它加载,解析,切换或打印)或具有动词名称,则它不应是属性。 首选属性以获取和/或设置简单值。 属性应表示类型实例的语义固有质量。 错误的计算属性示例: –随机值 – 今天的日期 –来自另一个对象或单例的值 […]