我看到有人这样定义变量:
b2World *_world;
b2Body *_body;
CCSprite *_ball;
代替
b2World *world;
b2Body *body;
CCSprite *ball;
我熟悉第二个,但不熟悉第一个。所以,我查了维基百科关于命名约定的内容:
Names beginning with double underscore or an underscore and a capital letter are reserved for implementation (compiler, standard library) and should not be used (e.g. __reserved or _Reserved).
那么,以“_”开头的有什么特殊含义吗?
我看到的以“_”开头的代码在这里:
http://www.raywenderlich.com/457/intro-to-box2d-with-cocos2d-tutorial-bouncing-balls
最佳答案
在一些 Objective-C 开发人员中有一个长期存在的约定,即在实例变量前加上下划线。它可以在几个方面提供帮助:第一,它可以更容易地在 .m 文件中发现实例变量;第二,它使开发人员不必为方法参数想出创造性的名称以避免与实例变量名称冲突;第三,正如其他人所指出的,它表示实例变量是私有(private)的,因此不应在整个代码中随意访问。
事实上,我主张避免在访问器(getter 和 setter)、-dealloc
和 -init...
以外的方法中直接访问实例变量.并不是说你永远不应该在其他任何地方使用它们,但你至少应该在其他方法中直接使用实例变量之前考虑一下。
关于c - Objective C/C 中的命名约定,以 "_"开头?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2660618/