Bücher online kostenlos Kostenlos Online Lesen
Die Programmiersprache Ruby (German Edition)

Die Programmiersprache Ruby (German Edition)

Titel: Die Programmiersprache Ruby (German Edition) Kostenlos Bücher Online Lesen
Autoren: David Flanagan , Yukihiro Matsumoto
Vom Netzwerk:
Datei angibt (nur in Ruby 1.9).

4.2 Variablen
    Eine Variable ist einfach nur eine Bezeichnung für einen Wert. Variablen werden durch Zuweisungsausdrücke erzeugt, die wir weiter unten in diesem Kapitel behandeln, und erhalten durch diese auch ihre Werte. Wenn der Name einer Variablen in einem Programm an einer anderen Stelle als auf der linken Seite einer Wertzuweisung erscheint, handelt es sich um einen Variablenreferenzausdruck, der den Wert der Variablen ergibt:
one = 1.0 # Dies ist ein Zuweisungsausdruck.
one # Dieser Variablenreferenz-Ausdruck ergibt 1.0.
    Wie in Kapitel 2 beschrieben, gibt es in Ruby vier Arten von Variablen, und lexikalische Regeln bestimmen ihre Namen. Variablen, die mit
$
beginnen, sind globale Variablen und überall in einem Ruby-Programm sichtbar. Variablen, die mit
@
oder
4
beginnen, sind Instanz- beziehungsweise Klassenvariablen, die in der objektorientierten Programmierung verwendet und in Kapitel 7 beschrieben werden. Und Variablen, deren Namen mit einem Unterstrich oder einem Kleinbuchstaben beginnen, sind lokale Variablen, die ausschließlich in der aktuellen Methode oder dem aktuellen Block definiert sind. (In „5.4.3 Blöcke und Gültigkeitsbereiche von Variablen“ finden Sie weitere Informationen über den Geltungsbereich lokaler Variablen.)
    Variablen haben immer einfache, unqualifizierte Namen. Wenn ein
.
oder
::
in einem Ausdruck vorkommt, dann ist dieser Ausdruck entweder eine Referenz auf eine Konstante oder ein Methodenaufruf.
Math::PI
ist beispielsweise eine Referenz auf eine Konstante, und der Ausdruck
item.price
ist ein Aufruf der Methode
price
für den Wert, der in der Variablen
item
enthalten ist.
    Der Ruby-Interpreter definiert beim Start eine Anzahl globaler Variablen vor. Siehe Kapitel 10 für eine Liste dieser Variablen.
    4.2.1 Uninitialisierte Variablen
    In der Regel sollten Sie Ihren Variablen stets einen Wert zuweisen oder sie initialisieren, bevor Sie sie in Ausdrücken verwenden. Unter gewissen Umständen erlaubt Ruby Ihnen jedoch die Verwendung noch nicht initialisierter Variablen. Die Regeln unterscheiden sich je nach Variablenart:
    Klassenvariablen
Einer Klassenvariablen muss vor ihrer Verwendung stets ein Wert zugewiesen werden. Ruby löst einen
NameError
aus, wenn Sie auf eine Klassenvariable verweisen, der noch kein Wert zugewiesen ist.
    Instanzvariablen
Wenn Sie auf eine uninitialisierte Instanzvariable verweisen, gibt Ruby
nil
zurück. Es gilt jedoch als schlechter Programmierstil, sich auf dieses Verhalten zu verlassen. Ruby gibt eine Warnung über die uninitialiserte Variable aus, wenn Sie es mit der Option
-w
ausführen.
    Globale Variablen
Uninitialisierte globale Variablen sind wie uninitialisierte Instanzvariablen: Sie ergeben
nil
, erzeugen aber eine Warnung, wenn Ruby mit dem Flag
-w
aufgerufen wird.
    Lokale Variablen
Dieser Fall ist komplizierter als die anderen, weil lokale Variablen kein Satzzeichen als Präfix besitzen. Das bedeutet, dass Referenzen auf lokale Variablen genauso aussehen wie Methodenaufrufausdrücke. Wenn der Ruby-Interpreter eine Wertzuweisung an eine lokale Variable gefunden hat, weiß er, dass es eine Variable und keine Methode ist, und er kann den Wert der Variablen zurückgeben. Hat dagegen noch keine Wertzuweisung stattgefunden, dann behandelt Ruby den Ausdruck als Methodenaufruf. Wenn keine Methode dieses Namens existiert, löst Ruby einen
NameError
aus.
    Im Allgemeinen erzeugt der Versuch, eine lokale Variable vor ihrer Initialisierung zu verwenden, deshalb einen Fehler. Es gibt einen Sonderfall: Eine Variable entsteht, sobald der Ruby-Interpreter einen Zuweisungsausdruck für diese Variable vorfindet. Dies ist selbst dann der Fall, wenn diese Wertzuweisung eigentlich gar nicht ausgeführt wird. Eine Variable, die existiert, der aber kein Wert zugewiesen wurde, erhält den Standardwert
nil
. Zum Beispiel:
a = 0.0 if false # Diese Wertzuweisung wird niemals ausgeführt.
print a # Gibt nil aus: Variable existiert ohne zugewiesenen Wert.
print b # NameError: Keine Variable oder Methode namens b existiert.

4.3 Konstanten
    Eine Konstante in Ruby gleicht einer Variablen, außer dass ihr Wert für die Dauer eines Programms konstant bleiben soll. Der Ruby-Interpreter erzwingt die Konstanz von Konstanten nicht unbedingt, gibt aber eine Warnung aus, wenn ein Programm den Wert einer Konstanten ändert. Lexikalisch sehen die Namen von Konstanten genauso aus wie die Namen lokaler Variablen, außer dass sie mit einem

Weitere Kostenlose Bücher