Unsere Datenschutzrichtlinie wird in Kürze aktualisiert. Bitte sehen Sie sich die Vorschau an.

Swift lernen

Mengen gleichartiger Datentypen in Arrays verwalten

Testen Sie unsere 2016 Kurse

10 Tage kostenlos!

Jetzt testen Alle Abonnements anzeigen
Collections sind eine Ansammlung von Daten, meistens sogar von einem bestimmten Typ. Mit dem Datentyp Array stellt Swift Funktionen zur Verfügung, um mit einer Menge von Daten auf einfache Weise operieren zu können.
09:23

Transkript

In diesem Video beschäftigen wir uns mit einem Collection-Datentyp, also einem etwas komplexeren Datentyp in Swift, nämlich dem Array, und wir schauen uns an, was wir da für Möglichkeiten haben. Dazu erzeugen wir uns ein neues Projekt in einem Playground, und legen uns das im jeweiligen Ordner ab, und können dann hier schon einsteigen. Nun, was soll das sein, eine Collection? Das ist also eine Menge von normalerweise Daten desselben Typs. Also so etwas wie Zahlen, und wir können sagen, dass wir da verschiedene Zahlen haben. So, nun haben wir schon ein Array geschaffen, das Array heißt zahlen, und hat eben diese Menge von Elementen, das sind alles Integer. Also wurde unser Array auch tatsächlich zu einem Integer-Array, und wir haben also diese starke Typbindung natürlich nicht nur für einzelne Variablen, sondern auch hier, für Collection-Datentypen innerhalb von Swift. Ja, in Objective-C unterscheiden wir ja noch zwischen inmutable und mutable Arrays, also sind sie veränderlich oder sind sie nicht veränderlich, in Swift wird das ausgedrückt dadurch, ob ich ein variables Array mache, oder ein konstantes, wenn ich denn es mit let erzeugen würde. Wenn wir ein variables Array haben, dann ist es veränderlich, und wir können dann Werte zum Beispiel hinzufügen. Das heißt, ich habe hier die Möglichkeit, zur Laufzeit etwas mit append hinzuzufügen, wie wäre es mit der Zahl 17? Und dann sehen wir schon, aha, unser Array hat jetzt noch das Element 17. Kann ich denn auch einen Text hinzufügen? Und genau das geht nicht, denn unser Array ist ja typsicher, und ein String ist nun mal kein Int, und deshalb ist das hier nicht möglich. Anders als in Objective-C wo ich innerhalb von einen Array ja jedes Objekt legen konnte, bin ich eben hier mit Swift auch auf der sicheren Seite, dass ich ein typsicheres Array habe. Also append ist zum Beispiel eine Möglichkeit, Elemente am Array hinzuzufügen, es gibt aber auch einen überladenen Operator, dieses "+=", und da kann ich dann auch ein weiteres Element hinzufügen, zum Beispiel die 19, also auch das ist überhaupt kein Problem, und wir sehen, dass wir diesen Eintrag hier haben hinzufügen können. Wir können dann auch natürlich Objekte entfernen, dass wir sagen beispielsweise das letzte Objekt hätten wir wieder gerne entfernt, das wird uns dann auch zurückgegeben, das war also die 19, wenn wir die Zahlen danach uns nochmal anschauen, ist wieder alles drin, außer der 19, weil die haben wir ja entfernt. Dann gibt es auch noch removeAtIndex, ein Array in Swift ist nullbasierend, das heißt, das erste Element hat den Index Null, wenn ich also hier die Ziffer 1 aus unserem Array entfernen will, dann ist das das Element an der Position Null, und das kann ich also gerne tun, und schon ist unsere 1 aus diesem Array verschwunden. Ich kann aber auch direkt über den Index Operator zugreifen, dass ich sage, zahlen, davon das ph[?], das Element[?], am Index 4 soll jetzt sein die 77. Und wenn wir uns dann unsere Zahlen noch einmal anschauen, dann haben wir das Element an dem Index 4 0, 1, 2, 3, 4 - das stimmt also, von der 11 auf die 77 geändert. Neben dem Einfügen und Entfernen gibt es auch noch einen Insert, dass ich dann sagen kann, ich hätte gerne ein neues Element, basierend auf dem Typ des Arrays, hier ja die Zahlen, wir nehmen mal das Element Null, und ich hätte es gerne an einer bestimmten Indexposition eingefügt, warum nicht atIndex: 0, und dann können wir auch unserem Array hier vorne noch ein weiteres Element hinzufügen. Also eine breite Möglichkeit von Zugriffsoperatoren, die wir haben, auf unsere veränderlichen Arrays, wie gesagt, das geht alles nicht, wenn wir denn ein konstantes Array haben, denn dann ist ja jeder Zugriff über die Initialisierung zur Startphase hinaus verboten, also mit Variablen, sprich veränderlichen Arrays, können wir eine ganze Menge anfangen. Dann sollten wir uns durchaus noch anschauen, wie wir aus einem Array auch einmal die Werte ausgeben können, wie wir also über alle Werte, man sagt dann, iterieren, da gäbe es jetzt mehrere Möglichkeiten, wir könnten uns zum Beispiel mal beschaffen den Account, wie viele Elemente sind denn in diesem Array, das sind jetzt hier 8, und wir könnten dann quasi über den Index einzeln zugreifen, übrigens hier an der Stelle auch noch etwas Schönes, ein Array kann uns sagen, true oder false, ob es empty ist, also ob es leer ist oder nicht, das ist auch sehr schön, wir müssen also nicht auf count=0 prüfen, um zu sagen, das Array ist leer, wir dürfen unser Array befragen, sag mal, bist du denn leer, und wenn das true wäre, dann ist das eben so, und kein Element ist darin enthalten, also wir könnten über so eine alte Schleife da zugreifen, aber viel schöner in Swift ist die sogenannte "Fast Innumberation", das heißt, wir sagen, für eine Zahl in unserem Array möchten wir gerne etwas tun, und jetzt wird in diese Variable, die natürlich vom Typ des Arrays ist, nämlich auch alles Integer, das heißt, zahl ist ein Integer, dann darf ich jetzt damit etwas machen, hier würde ich nur mal ausgeben wollen, println(zahl) und wir dürfen das auch gerne ein bisschen hübscher machen, die Zahl lautet, und dann machen wir das mit unserer String-Interpolation, geben wir dann diese Zahl auch aus, So, und wenn wir das dann hier laufen haben, sehen wir, okay, das wurde jetzt auch 8 Mal gemacht, die Frage ist, was ist passiert, dann holen wir uns schnell unsere Timeline, und sehen hier die Ausgaben: 0, 2, 3, 6, 9, 77, 12 und 17, das sind jetzt tatsächlich die Inhalte gewesen, und so einfach können wir über ein Array und jedes Element iterieren. Wenn wir uns auf die Type-Inference nicht verlassen wollen, oder unsere Array erst später, zur Laufzeit erzeugen können, dann haben wir ja keine Möglichkeit, hier jetzt bei der Initialisierung gleich zu sagen: "Hey, ich brauche ein Array von Int's". Wie kann ich denn den Datentyp dann in einem Array angeben, wenn ich ihn nicht wie hier über Type Inferation mir bestimmen lassen will, nun, so wie ja eine Variable den Datentyp Int haben kann, und wir dann sagen können, dass wir da etwas zuweisen wollen, kann ich auch sagen, nein, nicht nur ein Int, sondern bitte ein Array von Int's, und schon ist unser Programm wieder in Ordnung. Ich erzeuge mir also eine Variable namens zahlen mit dem Datentyp Array von Integer und dann darf ich natürlich zu jeder Zeit dann, in dieses Array auch Elemente vom Typ Integer aufnehmen. Für diejenigen, die es dann gerne ganz korrekt haben wollen, kann man das Ganze auch so schreiben, es geht auch noch etwas anders, zahlenAnders, es gibt nämlich eine etwas noch formalere Beschreibung des Ganzen, dass wir sagen, es handelt sich um ein Array von Integern, also auch das ist eine gültige Schreibweise. Aber obwohl Swift noch sehr jung ist, hat sich doch dieses hier jetzt etabliert, und man sagt also, Datentyp in eckigen Klammern ist ja ein Array, also ist zahlen ein Array von Integern, und die liegen dann auch darin. Ja, das sollte genügen für den Einstieg in den komplexen Datentyp Array mit Swift.

Swift lernen

Erkunden Sie die wichtigsten Sprachmerkmale von Swift und ihre modernen Eigenschaften wie Generics, Extensions, Tupels und Optionals.

4 Std. 2 min (30 Videos)
Derzeit sind keine Feedbacks vorhanden...
 

Dieser Online-Kurs ist als Download und als Streaming-Video verfügbar. Die gute Nachricht: Sie müssen sich nicht entscheiden - sobald Sie das Training erwerben, erhalten Sie Zugang zu beiden Optionen!

Der Download ermöglicht Ihnen die Offline-Nutzung des Trainings und bietet die Vorteile einer benutzerfreundlichen Abspielumgebung. Wenn Sie an verschiedenen Computern arbeiten, oder nicht den ganzen Kurs auf einmal herunterladen möchten, loggen Sie sich auf dieser Seite ein, um alle Videos des Trainings als Streaming-Video anzusehen.

Wir hoffen, dass Sie viel Freude und Erfolg mit diesem Video-Training haben werden. Falls Sie irgendwelche Fragen haben, zögern Sie nicht uns zu kontaktieren!