使用Dot-Operator与Objective-C中的括号消息

时间:2014-08-26 08:16:24

标签: objective-c

来自'Objective-C编程',第6版,Stephen G. Kochan:

  

虽然编写诸如myFraction.print之类的语句在语法上是正确的,但它不被认为是良好的编程风格。点运算符真的打算用于属性;通常用于设置/获取实例变量的值。执行其他工作的方法通常不使用点运算符执行;传统的括号消息表达式是首选语法。

备份这个职位是否存在绩效缺陷,还是仅仅是社会习俗?

3 个答案:

答案 0 :(得分:3)

我不认为它推动了这种社会习俗。我认为你可以从中获得更好的可读性。

没有性能影响,但如果您遵循该标准,您会发现与其他开发人员合作更容易。

The Times Online style guide是我工作的,并且与Apple自己的编码风格相当标准。

答案 1 :(得分:2)

这只是一个社会习俗。属性只是一种语法糖。因此,当您使用点符号时,它会自动转换为对getter / setter的调用。

但我完全赞同Stephen G. Kochan先生。使用点语法来调用方法会产生误导。

答案 2 :(得分:0)

不允许使用点语法属性的消息传递方法,因为在引入属性和点运算符的时候,只有使用get / set访问器方法有数亿行代码,这意味着你可以使用点运算符表示您正在使用类似属性的访问器,即使它们未被声明为属性。从理论上讲,现在可以将其删除。

使用点运算符除了获取或设置属性之外的其他内容是奇怪的,并且会使您的代码对您自己和其他人造成难以置信的混淆,但在运行时不会产生性能税。另一方面,也没有理由不再将属性声明为属性 - 特别是因为它会导致Objective-C中的代码更少,并使它们显示为属性而不是Swift中的方法。