Am 14. September 2017 haben wir eine überarbeitete Fassung unserer Datenschutzrichtlinie veröffentlicht. Wenn Sie video2brain.com weiterhin nutzen, erklären Sie sich mit diesem überarbeiteten Dokument einverstanden. Bitte lesen Sie es deshalb sorgfältig durch.

Swift lernen

Funktionen aufbauen, die jederzeit aufgerufen werden können

LinkedIn Learning kostenlos und unverbindlich testen!

Jetzt testen Alle Abonnements anzeigen
Funktionen mit und ohne Argumente, mit und ohne Rückgabewerte, bieten die Möglichkeit, Code in kleine, übersichtliche Fragmente zu unterteilen.
09:28

Transkript

Programme, die einfach auf einem freien Quelltext basierend sind, so wie hier in einem Playground, wären nicht sehr zielführend, es ist wesentlich wichtiger, Algorithmen in verschiedenen Funktionen zusammenfassen zu können, die dann gezielt aufgerufen werden, und wie das in Swift geht, das schauen wir uns hier in diesem Video an. Also erzeugen wir uns einen neuen Playground, hier geht es dann um Funktionen, und dazu gibt es natürlich auch ein bisschen was zu erklären. Also, wenn wir in Swift angelangt sind, und eine Funktion schaffen wollen, brauchen wir dazu ein neues Schlüsselwort, dieses heißt dann func für function, und nun können wir den Namen unserer Funktion eingeben. Fangen wir doch mit etwas Einfachem an, und schaffen uns eine Funktion, die "Hallo" sagen soll, und so eine Funktion bekommt eine Liste von Argumenten normalerweise, mit der die Funktion operiert. Hier haben wir eine leere Liste, diese Funktion braucht keine Argumente. Und eine Funktion kann auch etwas zurückliefern. Hier liefert unsere Funktion nichts zurück, und das können wir dann auch so angeben. Geschweifte auf, geschweifte zu, das ist dann der tatsächliche Inhalt, und hier dürfen wir nun programmieren, zum Beispiel println("hallo User") Nun haben wir eine Funktion geschaffen, die da heißt "sagHallo", sie bekommt keine Argumente, und sie liefert nichts zurück. Dann wollen wir diese Funktion mal aufrufen, das geschieht dann einfach in der Art, dass wir sagen, "Sag Hallo", runde Klammer auf, runde Klammer zu, und wir sehen, in dem Moment, wo wir so eine Funktion aufrufen, wird auch hier im Playground dann diese Zeile Code ausgeführt. Wenn wir das noch einmal auskommentieren, durch Voranstellen von zwei Schrägstrichen, dann wird diese Funktion eben nicht aufgerufen. So, nun ist das hier eine recht ungewöhnliche Schreibweise, ich hab aber das hier schon mal genannt, weil uns das bei Swift im Zusammenhang mit den sogenannten Closuren noch eine Weile begleiten wird. Wir können Funktionen auch anders deklarieren, sagHalloEinmalAnders nennen wir dann diese Funktion, und hier sagen wir, sie gibt nicht eine leere Liste zurück, so wie's aussieht, sondern void. Diese Funktion liefert nichts zurück, das darf man auch so ausführen, und dann darf man auch sagHalloEinmalAnders aufrufen, und es funktioniert natürlich genauso. das heißt, diese Schreibweise ist zu dieser äquivalent, und wir können das Ganze noch etwas weiter auf die Spitze treiben: sagHalloEinmalGanzAnders und dann sehen wir schon, auch das funktioniert. Und wir haben also hier noch eine Schreibweise, die das Gleiche ausdrückt, nämlich eine Funktion eines bestimmten Namens, die keine Argumente benötigt, und nichts zurückliefert. In Swift gibt es also drei Möglichkeiten, das Ganze zu schreiben: entweder so - oder so - oder so. Es ist nun mal an dem, und jede dieser Notationen hat auch gewisse Vor- oder Nachteile. Nun möchten wir natürlich auch kurz darstellen, wie wir unserer Funktion Argumente übergeben, und schaffen uns also eine neue Funktion, sagHalloZumBenutzer, und wir wollen hier angeben, username als Variablen-Name vom Typ String, und diese Funktion wird dann eben sagen, "Hallo, Benutzer" und über die String-Interpolation geben wir hier den username auch aus. So, das dürfen wir dann auch aufrufen, sagHalloZumBenutzer, und der Benutzername, hier an der Stelle ein Frank, und dann geben wir eben hier auch aus: "Hallo, Benutzer Frank". Also, statt eine Funktion zu haben, die keine Argumente hat, haben wir hier eine Funktion, die Argumente hat, die Argumente sind dann eine kommaseparierte Liste, sollten es mehrere sein, von einem variablen Namen und einem jeweiligen Datentyp. Und selbstverständlich darf ich dann auf diesen Parameter unter diesem Namen auch innerhalb der Funktion zugreifen. Wenn wir nun andere Funktionen machen, so etwas wie summe, und wir geben an, a als Integer und b als Integer, dann soll unsere Funktion auch einen Integer zurückgeben, hier entscheide ich mich für diese Schreibweise, und wir sagen Return a plus b dann können wir das Ganze so aufrufen, dass wir sagen, ich hätte gerne die Summe von 37 und 12, und wir kommen hier auf die 49, gleich als Ergebnis. Also eine Funktion mit zwei Argumenten, und sie liefert einen Integer zurück. Wenn die Funktion selber jetzt mit a arbeiten will, dann könnten wir ja sagen, a soll gleich sein a plus 10, wir wollen da irgendeinen Faktor noch hinzufügen, damit die Berechnung eben stimmt, und dann sehen wir, dass das Ganze nicht funktioniert, denn dieses a wird hier quasi als Konstante übergeben, ich darf also den Wert hier nicht ändern, da hat Swift vorgesorgt, wir dürfen tatsächlich das Keyword var verwenden, und haben dann innerhalb unserer Funktion hier auch die Möglichkeit, auf diesen Wert schreibend zuzugreifen, wir dürfen ihn also verändern, und dementsprechend stimmt natürlich unser Ergebnis nicht mehr, weil ja die Funktion selber auf das erste Argument einen Wert hinzugefügt hat. Das heißt jetzt aber nicht, dass dieser Wert a, der dann hier übergeben worden wäre, sich auch ändert. Ja, wenn wir hier also so was haben, wie Variable a wäre jetzt 37, Variable b gleich 12, und wir würden das Ganze dann hier nicht über diese Literale, sondern über die Variablen steuern, dann ist natürlich auch nach dem Aufruf der Funktion summe a immer noch auf dem Wert 37, und b immer noch auf 12, obwohl ja hier quasi gesagt wurde, a wäre gleich a plus 10. Wie gesagt mit dem Schlüsselwort var gilt das nur innerhalb der Funktion, dass ich eben hier diesen Wert auch änderbar machen darf, anders, und das ist vielleicht das, was man dann erwarten würde, geht es mit dem Keyword inout, das darf ich also auch verwenden, und darf dann tatsächlich auch hier eine Referenz auf unsere Zahl a übergeben, damit das Ganze noch funktioniert, Parameter, die als inout deklariert sind in einer Funktion, müssen eben mit einem vorangestellten kaufmännischen + übergeben werden, und dann passiert tatsächlich Folgendes, wohingegen hier unser a vor dem Aufruf von summe noch 37 war, ist unser a nach dem Aufruf der Funktion summe 47, weil ja summe inout den Wert a um den Wert 10 erhöht hat. Also das sind die einfachen Möglichkeiten, um Swift-Funktionen für Einsteiger, sag ich mal, darzustellen, ohne Argumente, ohne Rückgabetyp, in verschiedener Schreibweise, mit Argumenten oder sogar mit Variablen oder inout's, um auch die Werte tatsächlich auf Aufrufen der Seite ändern zu können, aber Funktionen in Swift machen einfach Spaß.

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!