Tag 1 - Einfache Datentypen
01. Jan. 2024
Tag 1
Variablen
Variablen sind Speichermöglichkeiten für programmspezifische Daten. Sie werden Variablen genannt, weil variabel sind, also variiert oder geändert werden können. Eine Variabel wird mit dem Schlüsselwort var
deklariert:
var str = "Hallo, Welt!"
Mit dem obigen Code wurde eine neue Variable namens str
hergestellt. In einem Playground von Xcode wird ihr Wert "Hello, Welt!" ausgegeben. Auf der rechten Seite des Playgrounds sieht man ebenfalls den Wert der Variable. Ein neuer Wert wird wie folgt zugewiesen:
str = "Auf Wiedersehen!"
Da die Variable bereits deklariert ist, muss beim zweiten Mal das Schlüsselwort var
nicht mehr benutzt werden. Würde man bei einer erneuten Zuweisung die Variable neu deklarieren, würde Xcode einen Fehler ausgeben.
Konstanten
Mit dem Schlüsselwort let
können Konstanten erzeugt werden, deren Werte eben nicht geändert werden können:
let name = "Zangs"
Somit wird sichergestellt, dass der Wert nicht verfälscht werden kann, was die Datensicherheit verbessert. Es ist daher bevorzugt, eine Konstante zu benutzen, wenn ihr Wert sich nach der Deklaration nie ändert. Xcode gibt sogar eine Warnung aus, wenn man eine Variable deklariert und ihr Wert unverändert bleibt.
Datentypen
Ganzzahlen
In Swift kann jede Variable nur einen Datentyp speichern, was Swift zu einer typsicheren Programmiersprache macht. Im obigen Beispiel wurde eine Variable vom Typen String
gespeichert. Ein anderer Datentyp wäre die Ganzzahl die als Int
für Integer bezeichnet wird:
var age = 32
Bei längeren Werten kann auch ein Unterstrich benutzt werden, um zwischen Tausend, Millionen, Milliarden usw. zu unterscheiden:
var population = 8_500_000
Aufgrund der Typsicherheit kann man also der Int
-Variable keinen String
-Wert zuzuweisen.
Zeichenketten
Wie eine Zeichenkette als Variable deklariert werden kann, ist oben bereits gezeigt. Eine längere u.a. mehrzeilige Variable kann wie folgt deklariert werden:
var str1 = """
Dies ist ein Text,
der sich über mehrere
Zeilen erstreckt.
"""
Hier werden die Zeilenumbrüche automatisch im String
übernommen. Will man dies vermeiden, kann man jede Zeile mit dem Backslash \
beenden:
var str2 = """
Dies ist ein Text, \
der sich über mehrere \
Zeilen erstreckt, \
aber nur eine Zeile enthält.
"""
Gleitkommazahlen
Aly Typ Double
werden Gleitkommazahlen gespeichert:
var pi = 3.141
Swift erkennt dies anhand des Dezimalpunktes (kein Komma!) in der Zahl. Der Begriff Double
deutet auf eine Gleitkommazahl mit doppelter Präzision hin. Denn früher waren die Gleitkommazahlen als Float
nur 32 Bit lang, später dann 64 Bit, also doppelt so lang. Swift nutzt daher den Begriff Double
um die höhere Präzision zu kennzeichnen.
Die beiden Typen mit denen Zahlen gespeichert werden sind also Int
und Double
. Wenn nun zwei Variablen die Zahl 1 enthalten, aber einmal ein Int
und einmal ein Double
gespeichert wurde, kann man diese nicht addieren. Denn es ist nicht vollständig typensicher, zwei Werte verschiedener Datentypen ohne weiteres zu verarbeiten, und deshalb erlaubt es Swift auch nicht.
Wahrheitswerte
Mit true
und false
werden Wahrheitswerte (boolesche Werte) gespeichert:
var fun = true
Der dazugehörige Datentyp nennt sich Bool
.
Erzeugung von Zeichenketten
Will man nun z.B. einen Int
Wert in einen String
einbetten, kann man dies durch die Interpolation erreichen:
var str3 = "Ich bin \(age) Jahr/e alt"
Swift wandelt automatisch jeden Typen in einen String
um. Neben dem Einbetten von Werten, kann auch Code ausgeführt werden!
Typenkennung
In den obigen Beispielen wurden die Datentypen immer von Swift automatisch erkannt (type inferrence auf Englisch). Will man explizit den Typ angeben, tut man dies wie folgt:
let name: String = "Max"
let year: Int = 1991
let height: Double = 1.75
let canCode: Bool = true
Es kann mehrere Gründe geben, warum man Swift den Datentyp nicht automatisch bestimmen lassen mag. Z.B.:
- Swift kann nicht herausfinden, welcher Typ benutzt werden soll.
- Man möchte, dass Swift einen anderen Typ als den Standardtyp benutzt.
- Man möchte noch keinen Wert zuweisen und nur die Variable/Konstante deklarieren.