Swift: Variablen und Konstanten
Variablen
[Bearbeiten]Variablen werden in Swift durch Voranstellen des Schlüsselwortes var
deklariert. Wir dürfen dabei auch den Typ angeben, den wir hier ablegen wollen. Ebenso optional ist die Angabe eines Initialwertes für unsere Variable.
var variable var variableMitTyp : String var variableMitTypUndWert : Int = 12
Optionals
[Bearbeiten]Optionals sind ein mächtiges Konstrukt, mit welchem wir die übliche NULL / NIL Prüfung vermeiden können. Ein Optional wird durch ein ?
Fragezeichen hinter dem Typ angegeben.
var optional : String?
Optionals können den Wert NIL
- vergleichbar mit NULL in anderen Programmiersprachen annehmen.
var optional : String? = nil
Eine Prüfung, ob ein Wert unserer Variable zugewiesen ist, kann mit der Einfachverzweigung if
geprüft werden.
var optional : String? = "1975" if nil != optional { println ("Yippi, optional hat den Wert \(optional)") } else { println ("Oh, optional hat keinen Wert!") }
In Swift schreiben wir dies aber einfach durch Nutzung einer Konstante.
let opt = optional { println ("Oh, optional hat keinen Wert!") } else { println ("Yippi, optional hat den Wert \(opt)") }
Kein Vorteil? Swift ist unsere objektorientierte Sprache und wir können in unsere Klasse-Instanz beliebige Referenzen auf andere Klassen-Instanzen halten, die wiederum Referenzen auf Klassen-Instanzen halten, u.s.w. Diese können natürlich als Optionals gekennzeichnet werden. Dann sieht dies mit einer Einfachverzweigung if schnell so aus:
if nil != optionalAussen { if nil != optionalMitte { if nil != optionalInnen { println ("Wert in innerstem Optional ist \(optionalAussen.optionalMitte.optionalInnen.wert)") } } }
Oder wir Nutzen die Optionals und schreiben:
let innersterWert = optionalAussen?.optionalMitte?.optionalInnen?.wert { println ("Wert in innerstem Optional ist \(innersterWert)") }
Wertgarantie mit !
[Bearbeiten]Wenn hinter den Namen eines Optionals den Operator !
gestellt wird, sagt man dem Computer damit: "Dieses Optional kann nicht NIL
sein.".
if let op = optional { print("optional hat den Wert /(optional!)") }
Wenn das Optional aber doch NIL
ist, stürzt das Programm ab:
var optional: String? = nil print(optional!)
Das kann man vermeiden, indem man stattdessen den Operator ??
benutzt:
print(optional ?? "Kein Wert vorhanden")
Dabei wird vor dem Operator das Optional eingegeben und danach ein Alternativwert, der zurückgegeben wird, wenn das Optional nil
ist (der Typ des Alternativwertes muss dabei allerdings derselbe wie der des Optionals ohne ? (im Beispiel String
) sein).
Konstanten
[Bearbeiten]Konstanten leiten wir durch das Schlüsselwort let
ein und geben diesen einen Wert mit, wobei wir den Typ angeben können.
let konstante = "const" let simplePi : Double = 3.14