Tuples in Swift

Aktualisiert am 30. Mai 2021

Arrays wird jeder kennen, aber mit Tuples (deutsch: Tupel) kommt man — als Anfänger — wohl eher selten in Berührung. Betrachten wir als Einstieg in dieses Thema zunächst einige Beispiele:

let numbers = (5, 24, 17)
let towns = ("Madrid", "Palermo")
let country = (name: "Spain", population: 46733038)

Die Werte werden — durch Kommata getrennt — von runden Klammern umschlossen. Wie anhand des der Variablen country zugewiesen Tuples erkennbar, können die Werte auch benannt sein (hier: name und population).

Anhand des country-Tuples zeigt sich auch der Unterschied zum Array: Die Elemente eines Tuples können unterschiedlichen Typs sein (hier: String und Integer).

Die Ausgabe der Werte mit print() sieht nun folgendermaßen aus:

print(numbers.0) // -> 5
print(numbers.1) // -> 24

print(towns.0) // -> Madrid

print(country.name) // -> Spain

Auf die Werte kann also über den Index oder die Bezeichnung zugegriffen werden, wobei der erste Wert den Index 0 hat, der zweit den Index 1, usw.

Die Werte eines Tuples können unterschiedlichen Variablen zugewiesen werden:

let (a, b) = towns
print(a) // -> Madrid
print(b) // -> Palermo

Es ist auch möglich, Tuples miteinander zu vergleichen:

(5, 24, 17) == (5, 24, 17) // -> true

Abschließend noch der Hinweis, dass es sich bei Tuples um Compound Types handelt, also um Typen ohne Namen. Hierzu zählen übrigens auch Closures.