classist 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 defoder moduleoder ifoder endusw. verwenden - das classist 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 classals 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 klassstattdessen 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 classund klassstatt Classund Klass. Letztere wären Konstanten und beide Classund Klasssind gültige Konstantennamen, aber ich würde aus Gründen der Klarheit empfehlen, sie nicht zu verwenden.