Variablen & Konstanten

Variablen

Variablen haben in Ruby keinen speziellen Typ. Aufgrund des streng objektorientierten Aufbaus der Sprache kann alles als ein Objekt betrachtet werden und jede Klasse ist entweder direkt oder über mehrere Vererbungsebenen eine Unterklasse der Klasse Object . Variablen speichern somit nur Referenzen auf Objekte. Deshalb ist folgender Code problemlos möglich:

>> a = 1
=> 1
>> puts a * 3
3
=> nil
>> a = "ei"
=> "ei"
>> puts a * 3
eieiei
=> nil

Wie man sieht, ist das Ergebnis jeder Aktion ein Objekt. Bei einer Zuweisung wird, wie dies auch in Java der Fall ist, das zugewiesene Objekt zurückgegeben. Doch auch jede Anweisung gibt ein Objekt, und wenn es "nur" die nil-Referenz ist, zurück. Diese Eigenschaft kann auch für die Auswertung Boolescher Ausdrücke verwendet werden, da nil in einem booleschen Ausdruck als false ausgewertet wird.

Konstanten

Konstanten unterscheiden sich von Variablen eigentlich nur dadurch, dass sie mit einem Großbuchstaben beginnen. Der Interpreter warnt in diesem Fall, wenn man versucht, die Variable/Konstante zu überschreiben - möglich ist es jedoch, wie der in Ruby durchgeführte Trainerwechsel zeigt:

>> Trainer="Toppmöller"
=> "Toppmöller"
>> Trainer="Doll"
(irb):7: warning: already initialized constant Trainer
=> "Doll"
>> puts Trainer
Doll
=> nil