class
ist ein Schlüsselwort zum Definieren einer neuen Klasse. Da es sich um ein reserviertes Schlüsselwort handelt, können Sie es nicht als Variablennamen verwenden. Sie können keines von Rubys Schlüsselwörtern als Variablennamen verwenden, daher können Sie keine Variablen mit dem Namen def
oder module
oder if
oder end
usw. verwenden - das class
ist nicht anders.
Betrachten Sie beispielsweise Folgendes:
def show_methods(class)
puts Object.const_get(class).methods.inspect
end
show_methods "Kernel"
Der Versuch, dies auszuführen, führt zu einem Fehler, da Sie ihn nicht class
als Variablennamen verwenden können.
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
Um dies zu beheben, verwenden wir klass
stattdessen den Bezeichner . Es ist nichts Besonderes, wird aber üblicherweise als Variablenname verwendet, wenn Sie mit einer Klasse oder einem Klassennamen arbeiten. Es ist phonetisch dasselbe, aber da es kein reserviertes Schlüsselwort ist, hat Ruby keine Probleme damit.
def show_methods(klass)
puts Object.const_get(klass).methods.inspect
end
show_methods "Kernel"
Die Ausgabe ist wie erwartet
["method", "inspect", "name", "public_class_method", "chop!"...
Sie können dort einen beliebigen (nicht reservierten) Variablennamen verwenden, der jedoch von der Community verwendet wurde klass
. Es hat keine besondere Magie - es bedeutet nur "Ich wollte hier den Namen 'Klasse' verwenden, aber ich kann nicht, da es ein reserviertes Schlüsselwort ist".
Nebenbei bemerkt, da Sie es einige Male falsch geschrieben haben, ist es erwähnenswert, dass in Ruby der Fall wichtig ist. Token, die mit einem Großbuchstaben beginnen, sind Konstanten. Über die Spitzhacke :
Ein konstanter Name beginnt mit einem Großbuchstaben, gefolgt von Namenszeichen. Klassennamen und Modulnamen sind Konstanten und folgen den Konstanten-Namenskonventionen. Konventionelle Variablen werden normalerweise durchgehend mit Großbuchstaben und Unterstrichen geschrieben.
Somit ist die korrekte Schreibweise class
und klass
statt Class
und Klass
. Letztere wären Konstanten und beide Class
und Klass
sind gültige Konstantennamen, aber ich würde aus Gründen der Klarheit empfehlen, sie nicht zu verwenden.