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:
können, ist
[]
. Die Klassen
Array
und
Hash
nutzen diesen Operator, um auf Array-Elemente per Index beziehungsweise auf Hash-Werte per Schlüssel zuzugreifen. Aber in Ihren Klassen können Sie
[]
für jeden beliebigen Verwendungszweck definieren. Sie können den Operator sogar als Methode definieren, die mehrere, durch Kommata getrennte Werte zwischen den eckigen Klammern erwartet. (Die Klasse
Array
akzeptiert einen Index und eine Länge zwischen den eckigen Klammern, um ein Teil-Array oder einen »Slice« des Array zu kennzeichnen.) Und wenn Sie eckige Klammern auf der linken Seite einer Zuweisungsoperation zulassen möchten, können Sie den zugehörigen Operator
[]=
definieren. Der Wert auf der rechten Seite der Zuweisung wird dann als letztes Argument an die Methode übergeben, die diesen Operator implementiert.
    1.1.4 Methoden
    Methoden werden mithilfe des Schlüsselworts
def
definiert. Der Rückgabewert einer Methode ist der Wert des letzten Ausdrucks, der innerhalb ihres Rumpfs ausgewertet wird:
def square(x) # Eine Methode namens square mit einem Parameter x definieren
x*x # Das Quadrat von x zurückgeben
end # Ende der Methode
    Wenn eine Methode wie die obige außerhalb einer Klasse oder eines Moduls definiert wird, handelt es sich effektiv um eine globale Funktion statt um eine Methode, die für ein Objekt aufgerufen wird. (Technisch gesehen wird eine solche Methode allerdings zu einer privaten Methode der Klasse
Object
.) Methoden können auch für individuelle Objekte definiert werden, indem dem Namen der Methode das Objekt vorangestellt wird, für das sie definiert wird. Methoden wie diese werden Singleton-Methoden genannt und sind die Art und Weise, wie Ruby Klassenmethoden definiert:
def Math.square(x) # Eine Klassenmethode des Moduls Math definieren
x*x
end
    Das Modul
Math
ist Teil der Ruby-Kernbibliothek, und dieser Code fügt eine neue Methode hinzu. Dies ist ein wichtiges Feature von Ruby – Klassen und Module sind »offen« und können zur Laufzeit modifiziert und erweitert werden.
    Für Methodenparameter können Vorgabewerte festgelegt werden, und Methoden können eine beliebige Anzahl von Argumenten akzeptieren.
    1.1.5 Wertzuweisung
    Der (nicht überschreibbare) Operator
=
weist einer Variablen in Ruby einen Wert zu:
x = 1
    Die Wertzuweisung kann mit anderen Operatoren wie
+
und
-
kombiniert werden:
x += 1 # Inkrement von x; Hinweis: Ruby hat kein ++
y -= 1 # Dekrement von y: auch kein Operator --
    Ruby unterstützt parallele Zuweisungen und erlaubt daher mehr als einen Wert und mehr als eine Variable in Zuweisungsausdrücken:
x, y = 1, 2 # Dasselbe wie x = 1; y = 2
a, b = b, a # Die Werte zweier Variablen vertauschen
x,y,z = [1,2,3] # Array-Elemente werden automatisch Variablen zugewiesen
    Methoden in Ruby können mehr als einen Wert zurückgeben, und die parallele Wertzuweisung ist in Verbindung mit solchen Methoden sehr nützlich. Zum Beispiel:
# Eine Methode definieren, die kartesische Koordinaten (x,y)
# in Polarkoordinaten konvertiert
def polar(x,y)
theta = Math.atan2(y,x) # Winkel berechnen
r = Math.hypot(x,y) # Abstand berechnen
[r, theta] # Der letzte Ausdruck ist der Rückgabewert
end
# So verwenden wir die Methode mit paralleler Zuweisung
distance, angle = polar(2,2)
    Methoden, die mit einem Gleichheitszeichen (
=
) enden, sind etwas Besonderes, da Ruby ihren Aufruf über die Zuweisungssyntax erlaubt. Wenn ein Objekt
o
eine Methode namens
x=
besitzt, dann erledigen die beiden folgenden Codezeilen genau dasselbe:
o.x=(1) # Normale Methodenaufruf-Syntax
o.x = 1 # Methodenaufruf durch Wertzuweisung
    1.1.6 Zeichensetzungssuffixe und -präfixe
    Wir haben gerade gesehen, dass Methoden, die mit
=
enden, über Zuweisungsausdrücke aufgerufen werden können. Ruby-Methoden können auch mit einem Fragezeichen oder einem Ausrufezeichen enden. Ein Fragezeichen wird zur Kennzeichnung von Prädikaten verwendet – Methoden, die einen booleschen Wert zurückgeben. Sowohl die Klasse
Array
als auch
Hash
definieren beispielsweise Methoden namens
empty?
, die überprüfen, ob die Datenstruktur überhaupt Elemente enthält. Ein Ausrufezeichen am Ende eines Methodennamens wird verwendet, um anzuzeigen, dass Sie beim Einsatz der Methode Vorsicht walten lassen sollten. Eine Vielzahl von Ruby-Kernklassen definiert Methodenpaare mit demselben Namen, außer dass jeweils eine von ihnen mit einem Ausrufezeichen endet und die andere nicht. In der Regel gibt die Methode ohne Ausrufezeichen eine modifizierte

Weitere Kostenlose Bücher