Swift:access.propertry 对比 access.method()

Swift: access.propertry vs access.method()

标题的例子是访问属性和调用方法的唯一区别吗?

似乎属性是没有括号的东西,方法调用总是有一个括号用于传递给方法的参数,即使没有要传递的参数。

主要区别就在于此吗?

来自Objective-C,这似乎还不够不同。

括号是最明显的区别...至少就访问语法而言。正如 MartinR 在评论中提到的那样,在概念和实现方面存在更多差异。 (我鼓励您查看他链接的 that documentation,以查看 属性 可以包含的所有内容。)

在访问方面需要注意的一件事:属性 语法包含 setter 和 getter "methods",有时两者同时包含。所以,对于一个方法,如果你想检索、修改和设置一个值,你必须调用 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 观察器 —无论您处理的是存储的还是计算的 属性.