为什么变量名经常以字母'm'开头?

查看诸如记事本教程之类的Android教程,我注意到几乎所有变量都以字母“m”开头。这是什么惯例?它起源于哪里?

95386 次浏览

'm'表示类的成员。因此,如果您不使用IDE来突出显示成员,那么您将通过名称理解它是一个成员

它代表成员。我个人认为这种惯例没有帮助,但它是主观的。

'm'表示该变量是类的成员变量…

正如前面回答的那样,这个前缀表示变量是成员。

有时人们会使用其他前缀,如果你发现一些以'i'或's'开头的变量,它也可能是匈牙利命名法的变体

不仅仅是在java中,我在cocos2d+box2d样本中看到过类似的约定,其中一些变量以m_开头,但其他的不是,非常令人困惑。


b2World* world;
GLESDebugDraw *m_debugDraw;

我猜是为了区分c++ box2d变量和Obj-C变量。

看到贡献者的代码风格指南:遵循字段命名约定。“m”前缀的使用比简单地表示“成员”变量更具体:它用于“非公共、非静态字段名”。

这里的m表示ember变量。

它有两个巨大的优势:

  • 如果您看到它,您会立即将其识别为成员变量。
  • 按下m,你将通过自动补全器获得所有成员。(这个答案不在其他答案中)

根据Android源代码文档:

  • 非公共的、非静态的字段名以m开头。
  • 静态字段名以s开头。
  • 其他字段以小写字母开头。
  • 公共静态final字段(常量)为all_caps_with_下划线。

注意,这是用于编写Android源代码的。对于创建Android应用程序,谷歌Java风格指南可能更有帮助。