Inhaltsverzeichnis
Variablen
Variablen kennt eigentlich jeder, der irgendwann mal die Schule besucht hat.
x = "foobar"
print x
In Ruby sind Variablen immer nur eines: Verweise auf Objekte.
heißt also, das ein neues Objekt der Klasse String (also Zeichenkette) mit dem Wert grün angelegt wird. Dann wird ein Verweiß auf das Objekt in der Variable gespeichert. Das heißt, wenn z.B. 300 Variablen auf das selbe Objekt zeigen, muss das das Objekt nicht 300-mal erstellt werden. Es wird nur einmal erstellt.
In diesem Beispiel weisen wir x einen Wert zu, dann setzen wir y = x. Das heißt wir lassen y auf genau das selbe Objekt wie x zeigen. Nun nutzen wir die Methode reverse! um y umzudrehen. Wenn wir jetzt x ausgeben, sehen wir, das auch x den umgedrehten Wert ausgibt, obwohl y umgedreht wurde.
Eine Variable kann man übrigens mehrere male beschrieben werden Hinweis: Variablen werden immer klein geschrieben.
Gültigkeitsbereiche
Gültigkeitsbereiche werden mit einem Zeichen vor dem Variablennamen ausgedrückt.
Vorzeichen | Gültigkeitsbereich | Erklärung |
---|---|---|
kein | Normal | Variable ist im Hauptprogramm erreichbar |
$ | Global | Variable ist im gesamten Programm erreichbar |
@ | Instanz | Variable ist in einem einzelnen Objekt erreichbar |
@@ | Klasse | Variable ist in einer Klasse aufrufbar |
Konstanten
Konstanten unterscheiden sich durch 2 Dinge von Variablen: 1. Konstanten werden großgeschrieben 2. Konstanten liefern einen Fehler, wenn man versucht, sie ein zweites mal zu beschreiben.
Führen wir einfach mal folgenden Code aus:
Und schon bekommen wir eine Fehlermeldung. Dieses "codelisting.rb:3: warning: already initialized constant Foo" will uns sagen das wir in Zeile 3 eine Konstante überschrieben haben. Daran, dass er danach noch "bar" ausgibt sagt uns: Ruby hat es zugelassen, das wir die Konstante überschreiben, doch so eine Fehlermeldung kommt beim Nutzer nicht gut an. Also sollte man dafür Variablen benutzen.
reservierte Schlüsselwörter
Es gibt bestimmte Schlüsselwörter, die nicht als Variablenname gebraucht werden dürfen
Schlüsselwörter | |||||||||
---|---|---|---|---|---|---|---|---|---|
alias | and | BEGIN | begin | break | case | class | def | defined? | do |
else | elsif | END | end | ensure | false | for | if | in | loop |
module | next | nil | not | or | redo | rescue | retry | return | self |
super | then | true | undef | unless | until | when | where | while | yield |
__FILE__ | __LINE__ |