我曾经使用前缀下划线作为实例变量命名,以区别于局部变量。
我想看到“Google Objective-C风格指南”,并发现它建议使用尾随下划线(请参阅HERE),但没有任何详细解释为什么
我知道这是一个编码风格问题,但我想知道使用尾随下划线有什么好处吗?
答案 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和局部变量。据我所知,_iVar
比iVar_
答案 4 :(得分:0)
几乎所有基于英语的编程语言,我们从左到右书写和阅读 使用前导下划线可以更轻松地找到iVar,并且可以识别变量是iVar。