从几个初始教程中,我看到属性属于一个类,并且基本上是C++世界中使用的"全局变量"(在此前编码).我还将变量看作更多只在方法中使用/存储信息的"本地"实体.
然后我遇到了这个Quora线程:https://www.quora.com/Apple-Swift-programming-language/What-is-the-difference-between-a-property-and-a-variable 现在我看到属性正在能够执行与其调用相关的代码.这很酷,但也为我打开了一大堆其他问题.
还有其他简单明了的方法来记住属性和变量之间的区别吗?
局部变量只是您使用的东西.你可以完全控制这些,如果你在一个函数中改变一个变量,你的函数之外的任何东西都不会知道.如果我编写一个框架并且你使用它,并且我决定改变某个函数的局部变量,那么使用我的框架的应用程序将继续工作,就像没有任何改变一样.
另一方面,课程描述了合同.当您使用课程时,您可以访问他们公开宣传的所有内容.这意味着如果我编写一个框架并使用它,如果我更改或删除了一个类的公共成员,如果您以前使用该成员,则代码将会中断.
因此,在许多语言中,将实例变量标记为公共是不好的做法.没有附加逻辑的实例变量,如果我想在某个时刻触发某个字段更改或者我想完全删除字段(而是在子对象中报告某个值),那么我就卡住了改变公共合同(例如,在一对get/ set方法中转换字段),并可能破坏您的代码.
由于这个原因,Swift使属性成为间接.Swift属性可以被视为大部分的哑值,但是如果您需要从存储值更改为计算值或其他值,则可以在不更改类的接口的情况下执行此操作.这样,您就不会破坏依赖于该属性的现有代码.
| 归档时间: |
|
| 查看次数: |
2543 次 |
| 最近记录: |