class
est un mot-clé utilisé pour définir une nouvelle classe. Puisqu'il s'agit d'un mot clé réservé, vous ne pouvez pas l'utiliser comme nom de variable. Vous ne pouvez utiliser aucun des mots-clés de Ruby comme noms de variables, vous ne pourrez donc pas avoir de variables nommées def
ou module
ou if
ou end
, etc. - ce class
n'est pas différent.
Par exemple, considérez ce qui suit:
def show_methods(class)
puts Object.const_get(class).methods.inspect
end
show_methods "Kernel"
Essayer d'exécuter ceci entraîne une erreur, car vous ne pouvez pas l'utiliser class
comme nom de variable.
test.rb:1: syntax error, unexpected kCLASS, expecting ')'
def show_methods(class)
^
test.rb:2: syntax error, unexpected ')'
puts Object.const_get(class).methods.inspect
Pour résoudre ce problème, nous utiliserons l'identifiant à la klass
place. Ce n'est pas spécial, mais il est traditionnellement utilisé comme nom de variable lorsque vous traitez avec un nom de classe ou de classe. C'est phonétiquement le même, mais comme ce n'est pas un mot-clé réservé, Ruby n'a aucun problème avec lui.
def show_methods(klass)
puts Object.const_get(klass).methods.inspect
end
show_methods "Kernel"
La sortie, comme prévu, est
["method", "inspect", "name", "public_class_method", "chop!"...
Vous pouvez y utiliser n'importe quel nom de variable (non réservé), mais la communauté a commencé à utiliser klass
. Il n'a pas de magie particulière - cela signifie simplement "Je voulais utiliser le nom 'classe' ici, mais je ne peux pas, car c'est un mot-clé réservé".
En passant, puisque vous l'avez mal tapé à plusieurs reprises, il convient de noter que dans Ruby, le cas est important. Les jetons commençant par une majuscule sont des constantes. Via la pioche :
Un nom de constante commence par une lettre majuscule suivie de caractères de nom. Les noms de classe et les noms de module sont des constantes et suivent les conventions de dénomination des constantes. Par convention, les variables constantes sont normalement épelées en utilisant des lettres majuscules et des traits de soulignement partout.
Ainsi, l'orthographe correcte est class
et klass
, plutôt que Class
et Klass
. Ce dernier serait des constantes, et les deux Class
et Klass
sont des noms de constantes valides, mais je recommanderais de ne pas les utiliser à des fins de clarté.