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