Stand: 2. Novenber 2011
Einstieg
Ein Tuple ist eine Datenstruktur, die Objekte verschiedener Typen aufnehmen
kann. Ein Tuple eignet sich im Besonderen als Rückgabetyp, wo das
Ergebnis aus mehreren unterschiedlichen Objekten besteht. Das nachfolgende
Beispiel zeigt die Erzeugung eines Tuple mit Int
und String
Werten:
val myTuple = (1, "text1", "text2", 3)
Der Zugriff auf die Elemente eines Tuple erfolgt über vordefinierte Methoden.
Alle Methoden beginnen mit einem Unterstrich gefolgt vom 1 - basierenden
Index des entsprechenden Elements. Im nachfolgenden Skript wird ein Tuple
der Variablen myTuple
zugewiesen. Im Anschluss erfolgt die Ausgabe
der einzelnen Elemente des Tuples.
val myTuple = (1, "text1", "text2", 3) println(myTuple._1) println(myTuple._2) println(myTuple._3) println(myTuple._4)
Die Ausführung des Skriptes führt zu folgender Ausgabe:
1 text1 text2 3
Der tatsächliche Typ eines Tuples ist
abhägig von seiner Elementzahl. So ist der oben erzeugte Tuple ein Tuple vom Typ
Tuple4
. Das nachfolgende Beispiel zeigt die Erzeugung eines Tuple3:
val myTuple3 = (1, "txt", 3)
Zurzeit sind in Scala Tuples für eine maximale Anzahl von 22 (Tuple22
) Elementen definiert.
Pair, Triple
Tuple2
und Tuple3
werden auch als Pair
bzw. Triple
bezeichnet.
Die Klasse Predef
definiert dementsprechend die Typen Pair
und Triple
.
Die beiden Typen sind keine eigenen Klassen sondern nur Typdefinitionen für Tuple2
und Tuple3
In der nachfolgenden REPL Sitzung werden ein Pair
und ein Triple
definiert.
scala> val myPair = Pair("Berlin","Germany") myPair: (java.lang.String, java.lang.String) = (Berlin,Germany) scala> val myTriple = Triple("Meier",1960,"Berlin") myTriple: (java.lang.String, Int, java.lang.String) = (Meier,1960,Berlin)