Swift 101 - Klassen, Variablen, Eigenschaften und Methoden

Wie versprochen, hier ist meine erste Tranche zum Erlernen des Programmierens in der neuen Swift-Sprache!

Klassen in Swift definieren

Der folgende Code zeigt ein Beispiel für eine Swift-Klassendefinition:

Um eine Klasse in Swift zu deklarieren, verwenden Sie das Schlüsselwort class, gefolgt vom Namen der Klasse. Wenn es eine Superklasse hat, fügen Sie einen Doppelpunkt und den Namen der Superklasse hinzu. Der Beginn und das Ende der Klasse werden durch die öffnenden und schließenden geschweiften Klammern angezeigt.

In Swift werden Klassen im Vergleich zu Objective-C in einer einzigen .swift- Quellcodedatei definiert. Klassen werden in zwei separaten Dateien definiert, einer Headerdatei (.h) und einer Implementierungsdatei (.m).

Variablen deklarieren

Der folgende Code zeigt ein Beispiel für eine Variablendeklaration:

Sie beginnen eine Variablendeklaration mit dem Schlüsselwort var, gefolgt vom Namen der Variablen. Als Nächstes fügen Sie einen Doppelpunkt gefolgt vom Variablentyp hinzu. Anschließend können Sie der Variablen mit dem Zuweisungsoperator (=) einen Wert zuweisen.

Wenn Sie in Swift einer Variablen einen Anfangswert zuweisen, müssen Sie den Variablentyp nicht wie im folgenden Code angegeben angeben:

Sie können dies tun, weil Swift über eine so genannte Typinferenz verfügt, in der es den Typ der Variablen anhand des zugewiesenen Werts ermitteln oder ableiten kann.

In Objective-C können Sie Instanzvariablen auf Klassenebene und lokale Variablen in Methoden deklarieren. In Swift gibt es keine Variablen auf Klassenebene - nur lokale Variablen, die Sie innerhalb von Methoden deklarieren. Sie können Eigenschaften jedoch auf Klassenebene deklarieren (siehe Abschnitt Eigenschaften deklarieren weiter unten).

Das Ende des Sternchens

In Objective-C verwenden Sie ein Sternchen, um anzugeben, dass eine Variable einen Zeiger auf ein Objekt enthält. In Swift kann eine Konstante oder Variable einen Zeiger auf eine Adresse im Speicher enthalten (obwohl dies kein direkter Zeiger ist), in diesem Kontext müssen Sie jedoch nie einen Stern verwenden.

Einfache Eigenschaften deklarieren

Der folgende Code zeigt ein Beispiel für eine Eigenschaftsdeklaration:

Wie Sie sehen, ist es dem Deklarieren einer Variablen sehr ähnlich, mit der Ausnahme, dass Sie eine Eigenschaft auf Klassenebene deklarieren und nicht innerhalb einer Methode.

Wie bei Variablen müssen Sie den Eigenschaftstyp nicht angeben, wenn Sie einer Eigenschaft einen Anfangswert zuweisen. Sie können Eigenschaften auch mit Initialisierungsmethoden initialisieren (Einzelheiten finden Sie im folgenden Abschnitt zu Initialisierungen .) Der folgende Code zeigt ein Beispiel für die Deklaration einer Eigenschaft ohne Angabe eines Typs:

In Objective-C hatten Eigenschaften normalerweise Sicherungsinstanzvariablen, in denen der tatsächliche Wert der Eigenschaft gespeichert war. Swift vereinfacht Eigenschaften, indem es die Konzepte von Eigenschaften und Instanzvariablen vereinheitlicht. Eigenschaften haben keine Sicherungsinstanzvariable mehr. Alles an einer Immobilie wird an einem einzigen Ort deklariert.

In Swift müssen Sie das Schlüsselwort self nicht verwenden, um auf eine Eigenschaft zu verweisen, es sei denn, die Methode, in der Sie Code schreiben, verfügt über einen Parameter mit demselben Namen wie die Eigenschaft.

Berechnete Eigenschaften deklarieren

Swift verfügt auch über berechnete Eigenschaften, denen Get- und Set- Methoden zugeordnet sind, wie im folgenden Code gezeigt:

In diesem Beispiel verfügt die Thermometer- Klasse über eine einfache temperatureFahrenheit- Eigenschaft und eine berechnete temperateCelsius- Eigenschaft.

Beachten Sie, dass die Methoden get und set der Thermometer- Klasse keine Instanzvariable referenzieren, da es in Swift keine Instanzvariable gibt!

In diesem Fall ruft die Methode get den Wert aus der Eigenschaft temperatureFahrenheit ab, konvertiert ihn in Celsius und gibt den Wert zurück. Die Methode set übernimmt den übergebenen Wert, konvertiert ihn in Fahrenheit und speichert das Ergebnis in der Eigenschaft temperatureFahrenheit .

Der an die set- Methode der Eigenschaft übergebene Wert wird in einem implizit benannten Parameter namens newValue gespeichert . Wenn Sie einen anderen Parameternamen verwenden möchten, können Sie den Namen in Klammern nach dem Satz angeben , wie im folgenden Code gezeigt:

Die Angabe eines Parameternamens kann das Verständnis Ihres Codes erleichtern. In diesem Beispiel wird durch Festlegen des Namens des Parameters auf celsiusValue klarer, dass die festgelegte Methode den Wert von Celsius in Fahrenheit konvertiert.

Methoden deklarieren

Der folgende Code enthält ein Beispiel für eine Swift-Methodendeklaration:

Wie bei Objective-C deklarieren Sie in Swift eine Instanzmethode zwischen den öffnenden und schließenden geschweiften Klammern der Klasse, zu der sie gehört.

Um eine Methode zu deklarieren, geben Sie zuerst das Schlüsselwort func gefolgt vom Namen der Methode an. Wenn die Methode Parameter enthält, fügen Sie diese in Klammern ein. Für jeden Parameter geben Sie den Namen des Parameters gefolgt von einem Doppelpunkt und dem Typ an. Wenn die Methode einen Rückgabewert hat, fügen Sie einen Bindestrich und ein Vorzeichen ( -> ) gefolgt vom Typ des Rückgabewerts hinzu.

Der folgende Code enthält ein Beispiel für eine Methode, die keine Parameter akzeptiert und nichts zurückgibt:

Wie Sie sehen, sind nach dem Methodennamen Klammern erforderlich, auch wenn keine Parameter vorhanden sind. Eine Methode, die nichts zurückgibt, benötigt den Rückgabewertindikator ( -> ) nach den Klammern nicht.

Initialisierungsmethoden

Der folgende Code enthält ein Beispiel für eine Initialisierungsmethode, mit der eine Klasse initialisiert wird.

Initialisierungsmethoden heißen immer init und geben im Gegensatz zu Objective-C niemals einen Wert zurück. Im obigen Beispiel akzeptiert die init- Methode einen currentTemperature- Parameter, in dem Sie die Anfangstemperatur übergeben können. Dieser Wert wird dann in der Eigenschaft temperatureFahrenheit gespeichert.

Sie können mehrere Initalizer-Methoden erstellen, wie im folgenden Codebeispiel gezeigt:

In diesem Beispiel haben beide Methoden den Namen init . Um die Namen eindeutig zu machen, wird den Parametern ein externer Name zugewiesen - fromFahrenheit und fromCelsius . Dadurch werden die vollständigen Methodennamen init (fromFahrenheit :) und init (fromCelsius :) erstellt .

Es ist erwähnenswert, dass in Swift Init- Methoden nicht vererbt werden. Aus praktischer Sicht bedeutet dies, dass Sie keinen Code in eine init- Methode einfügen sollten, den Sie in einer Unterklasse überschreiben möchten. Wenn Sie Code haben, der während der Initialisierungsphase einer Klasse ausgeführt werden soll, und Sie diesen Code in einer Unterklasse überschreiben möchten, können Sie eine separate Methode erstellen, den Initialisierungscode in diese Methode einfügen und diese Methode dann von der aus aufrufen init .

Instanz einer Klasse erstellen

Hier ist ein Beispiel zum Erstellen einer Instanz einer Klasse:

Wie Sie sehen, deklarieren Sie zum Erstellen einer Instanz einer Klasse eine Variable, die einen Verweis auf die Klasse enthält, geben ein Gleichheitszeichen (den Zuweisungsoperator) und anschließend den Namen der Klasse gefolgt von Klammern ein.

Fazit

Dies sind einige der Grundlagen, die Sie benötigen, um mit der Swift-Programmierung beginnen zu können. In den nächsten Beiträgen werde ich mich eingehender mit der Sprache befassen, um Ihnen dabei zu helfen, die neue Syntax und Struktur von Swift zu verstehen.