web-dev-qa-db-fra.com

Pourquoi les noms de variables commencent-ils souvent par la lettre 'm'?

En regardant les Android tutoriels tels que le tutoriel du Bloc-notes , j'ai remarqué que presque toutes les variables sont nommées en commençant par la lettre "m". De quelle convention s'agit-il, et où provient-il?

231
Kallja

Il représente un membre. Personnellement, je trouve cette convention inutile, mais subjective.

284
Matthew Flaschen

Voir Directives de style de code pour les contributeurs: respectez les conventions de dénomination de champ . L'utilisation du préfixe "m" est plus spécifique que celle désignant simplement une variable "membre": c'est pour "des noms de champs non publics, non statiques".

104
Warren Chu

Selon Android documentation du code source :

  • Les noms de champs non publics et non statiques commencent par m.
  • Les noms de champs statiques commencent par s.
  • Les autres champs commencent par une lettre minuscule.
  • Les champs finaux statiques publics (constantes) sont ALL_CAPS_WITH_UNDERSCORES.

Notez que c’est pour écrire Android code source. Pour créer Android applications, le Google Java Style Guide peut être plus utile.

81
Danilo Dughetti

Le m est ici pour indiquer une variable m ember.

Il a 2 avantages énormes:

  • Si vous le voyez, vous le reconnaissez instantanément en tant que variable membre.
  • Appuyez sur m et vous obtenez tous les membres via le compléteur automatique. (Celui-ci n'est pas dans les autres réponses)
38
Klaus

'm' signifie membre de la classe. Donc, si vous n'utilisez pas IDE pour mettre en évidence vos membres, alors vous comprendrez que c'est un membre par son nom

16
Vladimir Ivanov

Comme déjà répondu, ce préfixe indique qu'une variable est membre.

Parfois, les gens utilisent d'autres préfixes si vous découvrez des variables commençant par 'i' ou 's', il peut également s'agir d'une variante de notation hongroise

5
stacker

'm' signifie que la variable est une variable membre de la classe ...

2
swcai

non seulement en Java, j'ai déjà observé une convention similaire dans les exemples cocos2d + box2d, certaines variables commençant par m_, d'autres non, ce qui est très déroutant.


b2World* world;
GLESDebugDraw *m_debugDraw;

Je suppose que pour différencier les variables C++ box2d des variables Obj-C.

0
chunkyguy