首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用于变量命名的_iVar与iVar_

用于变量命名的_iVar与iVar_
EN

Stack Overflow用户
提问于 2012-01-12 08:37:29
回答 5查看 446关注 0票数 2

例如,我曾使用前缀下划线作为变量命名,以区分局部变量。

我碰巧看到了"Google样式指南“,发现它建议使用尾随下划线(请参阅这里),但没有详细解释原因。

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

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2012-01-12 09:02:57

关联:关于“合成”的问题 (见答案底部的区块引号)

优点是:_var是一种针对私有用户的惯例(C99,Cocoa准则),但它非常普遍(即使在苹果模板上也是如此),以至于苹果使用双下划线__var。谷歌通过使用尾下划线来解决这个问题。

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

在C++ (参见在C++标识符中使用下划线的规则是什么?)和Core属性(尝试在模型中添加一个前导下划线)中也不鼓励使用前导下划线,您将得到“名称必须以字母开头”)。 尾下划线似乎是明智的选择,但如果您喜欢其他的东西,碰撞是不可能发生的,如果它们发生了,您将收到编译器的警告。

票数 3
EN

Stack Overflow用户

发布于 2012-01-12 08:48:48

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

票数 3
EN

Stack Overflow用户

发布于 2012-01-12 08:58:32

苹果公司使用单个前导下划线来表示ivars,这样它们的变量名就不会与我们的名字发生冲突。当你命名你的象牙,使用任何东西,除了一个前导下划线。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8832091

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档