Bei einem Array handelt es sich um eine Datenstruktur, die dazu dient, Elemente in einer geordneten Reihenfolge zu strukturieren. Wie die Datenstrukturen Dictionary und Set gehören sie zu den Collections (oder: Collection Types).
Ein Array lässt sich sehr einfach als array literal erstellen:
let partiesArray: Array = ["CDU", "SPD", "Grüne"]
Apples Dokumentation zu Swift beschreibt ein array literal übrigens folgendermaßen:
“An array literal is written as a list of values, separated by commas, surrounded by a pair of square brackets.”
In Swift ist es nicht erforderlich, den Datentyp anzugeben. Denn Swift ist in der Lage, diesen selbständig zu ermitteln, was als type inference bezeichnet wird; möglich wäre also auch:
let partiesArray = ["CDU", "SPD", "Grüne"]
Selbstverständlich können auch leere Arrays erzeugt werden. Nachfolgend einige Beispiele für die Datentypen String
, Int
, Double
und CGPoint
:
var myStringArray = [String]()
var myIntegerArray = [Int]()
var myDoubleArray = [Double]()
var myCGPointArray = [CGPoint]()
Ein Array durchlaufen
Bleiben wir aber beim partiesArray
. Dieses Array könnte nun folgendermaßen mit einer for-Schleife (for loop) durchlaufen werden. Man bezeichnet dies auch als Iterieren (lat.: iterare , wiederholen):
for party in partiesArray {
print(party)
}
Bei party
handelt es sich um eine temporäre Variable, die nur während der Iteration besteht. Freilich hätte man anstelle von „party“ auch eine ganz andere Bezeichnung verwenden können.
Die Ausgabe in der Konsole würde wie folgt aussehen:
CDU
SPD
Grüne
Eine Iteration lässt sich außerdem auch mithilfe des Half-Open-Range-Operators ..<
umsetzen:
for i in 0..<parties.count {
let party = parties[i]
// do something
}
Die Variable i
ist hier eine Zahl, die von 0 bis zum letzten Index hoch zählt.
Elemente und Indizes
Jedes Element eines Arrays hat einen Index. Der Zugriff auf ein Element eines Arrays erfolgt durch die Angabe des Index in eckigen Klammern, z.B.
myArray[1]
Dabei ist aber zu beachten, dass das erste Element im Array den Index 0 hat.
Würde man also hier den Versuch unternehmen, mit
print(partiesArray[3])
das dritte Element („Grüne“) auszugeben, hätte dies folgende Fehlermeldung zur Folge:
fatal error: Index out of range
Denn beginnend mit dem Index 0, hat das letzte Element hier den Index 2.
Richtig wäre also:
print(partiesArray[2]) // -> Grüne
Dabei wird der Ausdruck [2]
als subscript bezeichnet.
Das letzte Element eines Arrays ließe sich übrigens auch folgendermaßen ausgeben:
let lastArrayItem = partiesArray.count - 1
print(partiesArray[lastArrayItem]) // -> Grüne
Dagegen wird mit
print(lastArrayItem) // -> 2
der Index des letzten Elements angezeigt.
Elemente entfernen und hinzufügen
Weniger demokratisch eingestellte Zeitgenossen, würden wohl gerne folgenden Code ausführen:
partiesArray.removeAll()
Wenn Ihr dies aber beispielsweise in einem Playground ausprobiert, erscheint folgende Fehlermeldung:
Arrays.playground:13:1: note: change 'let' to 'var' to make it mutable
Denn aufgrund der Deklaration mit let
ist dieses Array nicht veränderbar (immutable). Damit ein Array veränderbar (mutable) ist, muss das Schlüsselwort var
verwendet werden. Dann funktioniert auch die Methode removeAll()
.
Und nur wenn es veränderbar ist, können auch Elemente hinzugefügt werden. Machen wir also unser Array veränderbar und fügen weitere Parteien hinzu. Dafür wird die Methode append()
verwendet, die per Punkt-Notation angefügt wird (wie zuvor auch bei removeAll
).
var partiesArray = ["CDU", "SPD", "Grüne"]
partiesArray.append("Die Linke")
partiesArray.append("FDP")
Mit der Methode remove(at:)
kann man den Index jenes Elements angeben, das entfernt werden soll. Die Zeile
partiesArray.remove(at: 0)
print(partiesArray) // -> ["SPD", "Grüne", "Die Linke", "FDP"]
führt also dazu, dass die Partei „CDU“ entfernt wird. Übrigens würde man mit der Methode removeFirst()
zum gleichen Ergebnis gelangen. Dagegen lässt sich mit removeLast()
das letzte Element entfernen.
Womöglich wird man ein Element nicht am Ende, sondern an einem bestimmten Index hinzufügen wollen. Hier hilft die Methode insert()
weiter. Nachfolgendes Beispiel zeigt, wie die Partei „FDP“ am Anfang (Index 0) hinzugefügt werden kann:
partiesArray.insert("FDP" at: 0)
Zuletzt aktualisiert am 9. Februar 2022