Die Programmiersprache Ruby (German Edition)
als Operatoren betrachtet werden, in denen der Wert des rechten Ausdrucks die Ausführung des linken Ausdrucks beeinflusst. (Im Fall des Modifizierers
rescue
beeinflusst der Ausnahmezustand des linken Ausdrucks die Ausführung des rechten Operanden.)
Es ist nicht sonderlich sinnvoll, diese Schlüsselwörter als Operatoren zu beschreiben. Sie werden sowohl in ihrer Anweisungs- als auch in ihrer Ausdrucksmodifiziererform in Kapitel 5 dokumentiert. In Tabelle 4.2 werden sie lediglich aufgelistet, um ihren Rang relativ zu anderen Operatoren zu zeigen. Beachten Sie, dass sie alle einen sehr niedrigen Rang haben, aber dass der Anweisungsmodifizierer
rescue
einen höheren Rang hat als die Wertzuweisung.
4.6.14 Nicht-Operatoren
Die meisten Ruby-Operatoren werden mithilfe von Satzzeichen geschrieben. Rubys Grammatik verwendet auch eine Reihe von Satzzeichen, die keine Operatoren sind. Obwohl wir die meisten dieser Nicht-Operator-Satzzeichen an anderen Stellen in diesem Buch behandeln werden (oder bereits behandelt haben), folgt hier ein Überblick:
()
Klammern sind ein optionaler Teil der Methodendefinitions- und Methodenaufrufsyntax. Man stellt sich Methodenaufrufe besser als spezielle Art von Anweisungen vor, als
()
für einen Methodenaufrufoperator zu halten. Klammern werden außerdem zur Gruppierung verwendet, um die Ausführungsreihenfolge von Teilausdrücken zu beeinflussen.
[]
Eckige Klammern werden in Array-Literalen sowie zum Lesen und Setzen von Array- und Hash-Werten verwendet. In diesem Kontext sind sie ein komfortabler Syntaxersatz für Methodenaufrufe und verhalten sich in etwa wie neu definierbare Operatoren mit beliebig vielen Operanden. Siehe „4.4 Methodenaufrufe“ und „4.5.3 Wertzuweisung an Attribute und Array-Elemente“ .
{}
Geschweifte Klammern sind eine Alternative zu
do/end
in Blöcken, und sie werden auch in Hash-Literalen verwendet. In keinem der beiden Fälle fungieren sie als Operatoren.
.
und
::
.
und
::
werden in qualifizierten Namen verwendet, wo sie den Namen einer Methode von dem Objekt trennen, für das sie aufgerufen wird, oder den Namen einer Konstante von dem Modul, in dem sie definiert ist. Es sind keine Operatoren, weil die rechte Seite kein Wert, sondern ein Bezeichner ist.
;
,
,
und
=>
Diese Satzzeichen sind Trennzeichen und keine Operatoren. Das Semikolon (
;
) wird verwendet, um Anweisungen in derselben Zeile voneinander zu trennen; das Komma (
,
) wird verwendet, um Methodenargumente sowie die Elemente von Array- und Hash-Literalen voneinander zu trennen; der Pfeil (
=>
) schließlich wird verwendet, um in Hash-Literalen die Hash-Schlüssel von den Hash-Werten zu trennen.
:
Ein Doppelpunkt wird als Präfix von Symbolliteralen verwendet und zudem in der Ruby – 1.9-Hash-Syntax verwendet.
*
,
&
und
<
Diese Satzzeichen sind in manchen Kontexten Operatoren, aber sie werden auch in Kontexten verwendet, in denen sie keine Operatoren sind. Ein
*
vor einem Array in einer Wertzuweisung oder einem Methodenaufrufausdruck entpackt das Array in seine einzelnen Elemente. Auch wenn es manchmal als Splat-Operator bezeichnet wird, ist es eigentlich kein Operator;
*a
kann nicht als Ausdruck für sich allein stehen.
&
kann in einer Methodendeklaration vor dem Namen des letzten Methodenarguments verwendet werden, was dafür sorgt, dass ein Block, der an die Methode übergeben wird, diesem Argument zugewiesen wird. (Siehe Kapitel 6 .) Der Operator kann auch in Methodenaufrufen verwendet werden, um ein Proc an eine Methode zu übergeben, als wäre es ein Block.
<
wird in Klassendefinitionen verwendet, um die Elternklasse der Klasse anzugeben.
----
[ 13 ] Das heißt nicht, dass jede Methode ohne Argumente ein Attribut-Akzessor ist. Die Methode
sort
eines Array hat beispielsweise keine Argumente, aber man kann nicht sagen, dass sie einen Attributwert zurückliefert.
[ 14 ] Einige Implementierungen dieses Operators können statt
−1
oder
+1
einen beliebigen Wert kleiner als
0
beziehungsweise einen beliebigen Wert größer als
0
zurückgeben. Wenn Sie
<=>
implementieren, sollte Ihre Implementierung
−1
,
0
oder
+1
zurückgeben. Aber wenn Sie
<=>
verwenden, sollten Sie auf Werte kleiner beziehungsweise größer als 0 prüfen, anstatt davon auszugehen, dass das Ergebnis immer
−1
,
0
oder
+1
sein wird.
[ 15 ] Dass ein Ausdruck so geschrieben werden kann, heißt nicht, dass er so geschrieben werden sollte. In Kapitel 5 werden wir sehen, dass dieser Ausdruck besser so geschrieben
Weitere Kostenlose Bücher