标题的示例是访问属性和调用方法之间的唯一区别吗?
似乎属性是没有括号的东西,而方法调用总是有一个括号用于将参数传递给方法,即使没有要传递的参数。
这是主要差异吗?
来自 Objective-C,这似乎还不够不同。
最佳答案
括号是最明显的区别...至少就访问语法而言是这样。正如 MartinR 在评论中提到的那样,概念和实现方面存在更多差异。 (我鼓励您查看他链接的 that documentation 以了解属性(property)可以包含的所有内容。)
访问方面需要注意的一件事:属性语法包含 setter 和 getter“方法”,有时同时包含两者。所以,对于一个方法,如果你想检索、修改和设置一个值,你必须调用 getter,修改,然后调用 setter:
var bar: Int = foo.getBar()
bar += 1
foo.setBar(bar)
使用属性,您可以在一次操作中获取和设置:
foo.bar += 1
func increment(inout num: Int) { num++ }
increment(&foo.bar)
在幕后,这会调用 get
访问器,修改值,然后调用 set
访问器 - 并调用 willSet
/didSet
观察者,无论您是处理存储属性还是计算属性。
关于Swift:access.property 和 access.method(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28328956/