_iVar与iVar_进行variables命名

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

我碰巧看到“Google Objective-C风格指南” ,发现它build议使用尾部下划线(请参考这里 ),但没有详细解释原因。

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

相关: 关于@synthesize的问题 (请参阅答案底部的blockquotes)
优点是:_var是一个私有的约定(C99,Cocoa指导方针),但苹果使用双下划线__var是很常见的(甚至在苹果模板上)。 Google通过使用尾部下划线来解决这个问题。

我更新了另一个答案,有几个理由…

在C ++(请参阅关于在C ++标识符中使用下划线的规则是什么? )和Core Data属性(尝试在模型中添加一个前导下划线,您将得到“Name必须以字母开头”),也不鼓励使用下划线。 。

尾部下划线似乎是明智的select,但如果你喜欢别的东西,碰撞不太可能发生,如果他们这样做,你会得到编译器的警告。

前缀下划线通常用在系统/ SDK库中。 所以使用前缀下划线可能会导致超类中的variables被覆盖,像这样的错误并不容易find。 看看系统提供的任何类,如NSView,你会发现。

苹果公司使用单一的领先下划线为ivars,使他们的variables名称不会与我们碰撞。 当你命名你的ivars时,只使用一个前导下划线。

使用尾部下划线没有优势。 我们遵循编码风格,以减less代码的可读性。 下划线,在这种情况下,可以帮助我们区分iVars和局部variables。 据我所知, _iVariVar_更突出

几乎所有基于英文的编程语言,我们都是从左至右书写和阅读的。
使用前导下划线更容易findiVar,并认识到variables是iVar。