_iVar与iVar_的变量命名

时间:2012-01-12 08:37:30

标签: iphone objective-c ios coding-style

我曾经使用前缀下划线作为实例变量命名,以区别于局部变量。

我想看到“Google Objective-C风格指南”,并发现它建议使用尾随下划线(请参阅HERE),但没有任何详细解释为什么

我知道这是一个编码风格问题,但我想知道使用尾随下划线有什么好处吗?

5 个答案:

答案 0 :(得分:3)

前缀下划线通常用于系统/ SDK库。因此,使用前缀下划线可能会导致超类中的变量被覆盖,并且这样的bug不容易找到。 看一下系统提供的任何类,比如NSView,你会发现它。

答案 1 :(得分:3)

相关:Question about @synthesize(参见答案底部的区块引用)
优点是:_var是私有的约定(C99,Cocoa指南),但它很常见(即使在Apple模板上),Apple使用双下划线__var。谷歌通过使用尾随下划线来解决它。

我用更多理由更新了另一个答案......

  

在C ++中也不鼓励使用前导下划线(参见   What are the rules about using an underscore in a C++ identifier?)和核心数据属性   (尝试在模型中添加前导下划线,您将获得“名称”   必须以字母“)开头。

     

尾随下划线似乎是明智的选择,但如果你愿意的话   其他事情,碰撞不太可能发生,如果他们这样做,   你会得到编译器的警告。

答案 2 :(得分:1)

Apple对ivars使用单个前导下划线,以便它们的变量名称不会与我们的名称冲突。当您命名您的ivars时,请使用之外的任何其他前导下划线。

答案 3 :(得分:0)

使用尾随下划线没有任何优势。我们遵循编码风格,以便简化代码可读性。在这种情况下,下划线可以帮助我们区分iVar和局部变量。据我所知,_iVariVar_

更突出

答案 4 :(得分:0)

几乎所有基于英语的编程语言,我们从左到右书写和阅读 使用前导下划线可以更轻松地找到iVar,并且可以识别变量是iVar。