Im ersten Artikel von Swift From Scratch haben Sie die Xcode-Spielplätze kennengelernt und Ihre ersten Zeilen von Swift geschrieben. In diesem Artikel lernen wir die Grundlagen der Programmiersprache Swift kennen, indem wir die Variablen und das Tippen untersuchen. Wir werden uns auch Konstanten genau ansehen und warum Sie diese so oft wie möglich verwenden sollten.
In den nächsten Raten dieser Serie werden wir Xcode-Spielplätze nutzen, um die Grundlagen der Programmiersprache Swift zu erlernen. Wie wir im vorherigen Artikel gesehen haben, sind Spielplätze ideal für das Lehren und Lernen von Swift.
Beginnen wir mit dem Erstellen eines neuen Spielplatzes für dieses Tutorial. Ich ermutige Sie, mitzumachen! Die Verwendung einer Sprache ist eine großartige Möglichkeit, ihre Syntax zu erlernen und ihre Konzepte zu verstehen.
Starten Sie Xcode 8 und erstellen Sie einen neuen Spielplatz, indem Sie auswählen Neu> Spielplatz… von Xcode's Datei Speisekarte. Geben Sie einen Namen für den Spielplatz ein Plattform zu iOS, und klicken Sie auf Nächster. Sagen Sie Xcode, wo Sie den Spielplatz speichern möchten, und klicken Sie auf Erstellen.
Klären Sie den Inhalt des Spielplatzes, damit wir mit einem sauberen Schiefer beginnen können. Wir haben bereits im vorherigen Tutorial auf Variablen zurückgegriffen, aber lassen Sie uns jetzt die Details genauer betrachten, um zu verstehen, was Swift hinter den Kulissen macht.
In Swift verwenden wir die var
Schlüsselwort, um eine Variable zu deklarieren. Dies ähnelt zwar der Deklaration von Variablen in anderen Programmiersprachen, aber ich empfehle Ihnen dringend, bei der Verwendung der Programmiersprache nicht an andere Programmiersprachen zu denken var
Stichwort in Swift. Es gibt einige wichtige Unterschiede.
Das var
Schlüsselwort ist die einzige Möglichkeit, eine Variable in Swift zu deklarieren. Die häufigste und prägnanteste Verwendung der var
Schlüsselwort soll eine Variable deklarieren und ihr einen Wert zuweisen.
var street = "5th Avenue"
Denken Sie daran, dass wir diese Codezeile nicht mit einem Semikolon beenden. Während ein Semikolon in Swift optional ist, sollten Sie kein Semikolon verwenden, wenn dies nicht erforderlich ist.
Möglicherweise haben Sie auch festgestellt, dass wir bei der Deklaration der Variablen keinen Typ angegeben haben Straße
. Dies bringt uns zu einem der wichtigsten Merkmale von Swift, Typ Inferenz.
Die obige Anweisung deklariert eine Variable Straße
und weist den Wert zu 5th Avenue
dazu Wenn Sie Swift noch nicht kennen oder sich mit JavaScript oder PHP auskennen, denken Sie vielleicht, dass Swift eine typlose oder lose typisierte Sprache ist, aber nichts könnte weiter von der Wahrheit entfernt sein. Lassen Sie mich noch einmal betonen, dass Swift eine stark typisierte Sprache ist. Geben Sie Sicherheit ein ist einer der Eckpfeiler der Sprache.
Wir fangen gerade erst an und Swift zeigt uns schon ein bisschen von seiner Magie. Obwohl die obige Anweisung einen Typ nicht explizit angibt, ist die Variable Straße
ist vom Typ String
. Dies ist Swift Typ Inferenz in Aktion. Der Wert, den wir zuweisen Straße
ist eine Zeichenfolge. Swift ist intelligent genug, um dies zu erkennen und legt den Typ von implizit fest Straße
zu String
.
Die folgende Aussage liefert uns dasselbe Ergebnis. Der Unterschied ist, dass wir den Typ der Variablen explizit festlegen. Diese Aussage sagt das wörtlich Straße
ist vom Typ String
.
var street: String = "5th Avenue"
Bei Swift müssen Sie den Typ der Variablen und Konstanten explizit oder implizit festlegen. Wenn Sie dies nicht tun, beschwert sich Swift mit einem Fehler. Fügen Sie Ihrem Spielplatz die folgende Zeile hinzu, um zu sehen, was ich meine.
Var-Nummer
Diese Aussage wäre in JavaScript oder PHP vollkommen gültig. In Swift ist es jedoch ungültig. Der Grund ist einfach. Auch wenn wir eine Variable mit dem deklarieren var
Schlüsselwort geben wir nicht den Typ der Variablen an. Swift kann den Typ nicht ableiten, da wir der Variablen keinen Wert zuweisen. Wenn Sie auf den Fehler klicken, zeigt Xcode an, was mit dieser Anweisung nicht stimmt.
Wir können dieses Problem leicht beheben, indem Sie zwei Dinge tun. Wir können der Variablen wie zuvor einen Wert zuweisen oder einen Typ für die Variable explizit angeben Nummer
. Wenn wir den Typ explizit festlegen Nummer
, Der Fehler verschwindet. Die folgende Codezeile liest das Nummer
ist vom Typ String
.
var number: String
Wie Sie unten sehen können, weisen Sie neue Werte zu Straße
und Nummer
ist einfach und kommt ohne Überraschungen.
var street: String = "5th Avenue" var number: String street = "Hauptstraße" number = "10"
Wäre es nicht einfacher, die Nummer zu vergeben? 10
zum Nummer
Variable? Die Straßennummer muss nicht als Zeichenfolge gespeichert werden. Mal sehen, was passiert, wenn wir es tun.
var street: String = "5th Avenue" var number: String street = "Hauptstraße" number = 10
Wenn wir eine Ganzzahl zuweisen Nummer
, Xcode wirft einen weiteren Fehler auf uns. Die Fehlermeldung ist klar. Wir können keinen Typwert zuweisen Int
auf eine Variable vom Typ String
. Dies ist in locker getippten Sprachen kein Problem, aber in Swift.
Swift ist eine stark typisierte Sprache, in der jede Variable einen bestimmten Typ hat und dieser Typ nicht geändert werden kann. Lesen Sie diesen Satz noch einmal, um ihn in sich aufnehmen zu lassen, da dies ein wichtiges Konzept in Swift ist.
Um den Fehler zu beseitigen, müssen wir die Nummer
Variable als Int
. Schauen Sie sich das aktualisierte Beispiel unten an.
var street: String = "5th Avenue" var number: Int street = "Hauptstraße" number = 10
Es ist wichtig, dass Sie Folgendes beachten. Mit können Sie eine Variable deklarieren var
Schlüsselwort, und Sie müssen den Typ der Variablen nicht explizit angeben. Denken Sie jedoch daran, dass jede Variable (und jede Konstante) einen Typ in Swift hat. Wenn Swift auf den Typ nicht schließen kann, beschwert er sich. Jede Variable hat einen Typ, und dieser Typ kann nicht geändert werden.
Konstanten ähneln Variablen hinsichtlich der Typisierung. Der einzige Unterschied besteht darin, dass der Wert einer Konstante nicht geändert werden kann, sobald sie einen Wert hat. Der Wert einer Konstante ist gut… konstant.
Um eine Konstante zu deklarieren, verwenden Sie die Lassen
Stichwort. Schauen Sie sich das folgende Beispiel an, in dem wir deklarieren Straße
als Konstante statt einer Variablen.
lassen Sie Straße: String = "5th Avenue" var number: Int street = "Hauptstraße" number = 10
Wenn wir nur die erste Zeile aktualisieren, ersetzen var
mit Lassen
, Xcode gibt aus offensichtlichen Gründen einen Fehler aus. Der Versuch, den Wert einer Konstanten zu ändern, ist in Swift nicht zulässig. Entfernen oder kommentieren Sie die Zeile, in der wir versuchen, einen neuen Wert zuzuweisen Straße
den Fehler loswerden.
lassen Sie Straße: String = "5th Avenue" var number: Int // street = "Main Street" number = 10
Ich hoffe, Sie stimmen zu, dass das Deklarieren von Konstanten in Swift sehr einfach ist. Es gibt keine Notwendigkeit für exotische Schlüsselwörter oder eine komplexe Syntax. Das Deklarieren von Konstanten ist genauso einfach wie das Deklarieren von Variablen, und das ist kein Zufall.
Die Verwendung von Konstanten wird in Swift empfohlen. Wenn sich ein Wert nicht ändert oder Sie nicht erwarten, dass er sich ändert, sollte er eine Konstante sein. Dies hat eine Reihe von Vorteilen. Ein Vorteil ist die Leistung, aber ein wichtiger Vorteil ist die Sicherheit. Durch die Verwendung von Konstanten, wann immer dies möglich ist, fügen Sie Ihrem Code Einschränkungen hinzu, wodurch sicherer Code entsteht.
Die meisten Programmiersprachen verfügen über eine Vielzahl von Typen zum Speichern von Zeichenfolgen, Ganzzahlen, Gleitkommazahlen usw. Die Liste der verfügbaren Typen in Swift ist knapp. Schauen Sie sich die folgende Liste an:
Int
Schweben
Doppelt
String
Charakter
Bool
Es ist wichtig zu verstehen, dass die oben genannten Typen keine grundlegenden oder primitiven Typen sind. Dies sind benannte Typen, die von Swift mithilfe von Strukturen implementiert werden. Wir untersuchen Strukturen später in dieser Serie ausführlicher, aber es ist gut zu wissen, dass die Typen, die wir bisher angetroffen haben, nicht mit den primitiven Typen identisch sind, die Sie möglicherweise in Objective-C verwendet haben.
In Swift gibt es viele weitere Datentypen, z. B. Tupel, Arrays und Wörterbücher. Wir untersuchen diese später in dieser Serie.
Es gibt ein weiteres Thema, das wir diskutieren müssen, Typumwandlung. Schauen Sie sich das folgende Objective-C-Snippet an. Dieser Codeblock gibt den Wert aus 314.000000
zur Konsole.
int a = 100; Float b = 3,14; NSLog (@ "% f", (a * b));
Die Objective-C-Laufzeit wird implizit konvertiert ein
auf einen Gleitkommawert und multipliziert ihn mit b
. Lassen Sie uns das obige Code-Snippet mit Swift neu schreiben.
var a = 100 var b = 3,14 drucken (a * b)
Ignoriere das print (_: Trennzeichen: Terminator :)
Funktion für jetzt. Ich möchte mich zunächst auf die Vermehrung von konzentrieren ein
und b
. Swift bezieht sich auf die Art von ein
, ein Int
, und b
, ein Doppelt
. Wenn der Compiler versucht, sich zu vermehren ein
und b
, es stellt fest, dass sie nicht vom selben Typ sind. Dies scheint Ihnen kein Problem zu sein, aber es ist für Swift. Swift weiß nicht, welcher Typ das Ergebnis dieser Multiplikation sein soll. Sollte es eine ganze Zahl oder ein Double sein?
Um dieses Problem zu beheben, müssen wir sicherstellen, dass beide Operanden der Multiplikation vom gleichen Typ sind. Swift konvertiert die Operanden nicht implizit für uns, aber das ist einfach. In dem aktualisierten Beispiel erstellen wir eine Doppelt
mit dem in gespeichertem Wert ein
. Dadurch wird der Fehler behoben.
var a = 100 var b = 3,14 drucken (doppelt (a) * b)
Beachten Sie, dass der Typ von ein
hat sich nicht verändert Obwohl das obige Code-Snippet wie eine Art Casting aussehen kann, ist es nicht das Gleiche. Wir benutzen der Wert, der in gespeichert ist ein
ein erstellen Doppelt
, und dieses Ergebnis wird in der Multiplikation mit verwendet b
. Das Ergebnis der Multiplikation ist vom Typ Doppelt
.
Sie müssen sich daran erinnern, dass sich Swift von C und Objective-C unterscheidet. Werte von Variablen und Konstanten werden nicht implizit konvertiert. Dies ist ein weiteres wichtiges Konzept.
Im vorherigen Code-Snippet haben Sie Ihre erste Funktion aufgerufen, print (_: Trennzeichen: Terminator :)
. Diese Funktion ähnelt Objective-Cs NSLog
; es druckt etwas und hängt eine neue Zeile an. Um etwas auf die Konsole oder das Ergebnisfeld rechts zu drucken, rufen Sie auf print (_: Trennzeichen: Terminator :)
und übergeben Sie einen Parameter. Das kann eine Variable, eine Konstante, ein Ausdruck oder ein Literal sein. Sehen Sie sich die folgenden Beispiele an.
var string = "Dies ist ein String" let konstant = 3.14 print (string) print (konstant) print (10 * 50) print ("string literal")
Sie können auch die String-Interpolation verwenden, um Variablen, Konstanten, Ausdrücke und Literale zu kombinieren. Die String-Interpolation ist in Swift sehr einfach. Packen Sie die Variablen, Konstanten, Ausdrücke oder Literale ein \ ()
. Einfach wie ein Kuchen.
let street = "5th Avenue" let number = 10 print ("Sie wohnt in \ (Straße) \ (Nummer).")
Es ist wichtig, dass Sie verstehen, wie Swift mit Variablen und Konstanten umgeht. Obwohl es einige Zeit dauern kann, sich an das Konzept der Konstanten zu gewöhnen, ist Ihr Code, nachdem Sie sich dieser bewährten Methode angenommen haben, viel sicherer und verständlicher. Im nächsten Tutorial dieser Serie setzen wir unsere Erkundung von Swift fort, indem wir Sammlungen betrachten.
Wir haben ein umfassendes Handbuch zusammengestellt, um Sie beim Erlernen von Swift zu unterstützen, egal ob Sie gerade mit den Grundlagen anfangen oder fortgeschrittenere Themen erkunden möchten.
Wenn Sie wissen möchten, wie Sie mit Swift 3 echte Apps programmieren können, lesen Sie unseren Kurs Erstellen von iOS-Apps mit Swift 3. Ob Sie nun mit der iOS-App vertraut sind oder ob Sie von Objective-C auf den Wechsel wechseln möchten Natürlich erhalten Sie mit Swift einen Einstieg in die App-Entwicklung.