Quelle est la différence entre Class et Klass?
Réponses
Trop de publicités?class
est un mot-clé utilisé pour définir une nouvelle classe. Puisque c'est un mot clé réservé, vous n'êtes pas capable de l'utiliser comme un nom de variable. Vous ne pouvez pas utiliser de Ruby sont des mots-clés comme noms de variables, de sorte que vous ne serez pas en mesure d'avoir des variables nommées def
ou module
ou if
ou end
, etc - class
n'est pas différent.
Par exemple, considérez les points suivants:
def show_methods(class)
puts Object.const_get(class).methods.inspect
end
show_methods "Kernel"
Essayez d'exécuter cette résultats dans une erreur, puisque vous ne pouvez pas utiliser class
comme un 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 corriger cela, nous allons utiliser l'identificateur klass
à la place. Il n'est rien de spécial, mais il est classiquement utilisé comme un nom de variable lorsque vous faites affaire avec une classe ou un nom de classe. C'est phonétiquement le même, mais puisque ce n'est pas un mot clé réservé, Ruby n'a pas de problèmes avec elle.
def show_methods(klass)
puts Object.const_get(klass).methods.inspect
end
show_methods "Kernel"
De sortie, comme prévu, est
["method", "inspect", "name", "public_class_method", "chop!"...
Vous pouvez utiliser n'importe quel (non réservés) nom de la variable y, mais la communauté a pris à l'aide d' klass
. Ce n'est pas une magie particulière, il signifie simplement "je voulais utiliser le nom de "classe" ici, mais je ne peux pas, puisque c'est un mot clé réservé".
Sur une note de côté, puisque vous avez dactylographié mal quelques fois, il est intéressant de noter qu'en Ruby, en cas de questions. Des jetons de commencer avec une lettre majuscule sont des constantes. Via la Pioche:
Une constante le nom commence par une lettre majuscule suivie par le nom des personnages. Les noms de classe et les noms de module sont des constantes, et suivre la constante des conventions de nommage. Par convention, les variables constantes sont normalement épelé à l'aide de lettres majuscules et des caractères de soulignement dans l'ensemble.
Ainsi, l'orthographe correcte est class
et klass
, plutôt que d' Class
et Klass
. Ce dernier aurait du être des constantes, et les deux Class
et Klass
sont valables les noms de constantes, mais je déconseille de les utiliser à des fins de clarté.
Je pense que klass
est aussi une méthode Rails (ou plutôt ActiveRecord). Il est utilisé pour obtenir la classe d'une association.
L'un est le nom d'une classe et l'autre n'est qu'une constante non définie par défaut. Et pour la paire que vous êtes le plus susceptible de voir, class
et klass
, le premier est un mot clé pour définir les classes alors que le dernier n’est qu’un identifiant (comme toute autre chaîne de caractères). ). Il est utilisé lorsque vous souhaitez écrire le mot "classe", mais ne le pouvez pas car il s'agit d'un mot clé réservé.