Swift – Variablen und Konstanten

Aktualisert am 23. Juli 2020

Ging es im ersten Teil dieser Swift-Tutorial-Reihe lediglich um die Entwicklungsumgebung Xcode (und die Verwendung von Playgrounds), steigen wir im zweiten Teil in die eigentliche Programmierung ein.

Dabei dreht sich in diesem Artikel alles um das Thema Variablen (und Konstanten). Wer den ersten Teil gelesen hat, wurde bereits mit einer Variable konfrontiert. Denn beim Start einer neuen Playground-Datei wird eine Variable mit der Bezeichnung “str” definiert, der der Wert “Hello, playground” zugewiesen wird:

import UIKit

var str = "Hello, playground"

var und let

Dabei wird das Schlüsselwort var verwendet. Daneben existiert auch noch let, das ebenfalls verwendet werden könnte:

let str = "Hello, playground"

Der Unterschied besteht darin, dass eine mit var erzeugt Variable nachträglich wieder geändert werden kann. Mit let ist dies aber nicht mehr möglich:

let str = "Hello, playground"
str = "Hello, World!" // <- Führt zu einer Fehlermeldung!

Es erscheint die Fehlermeldung:

“Cannot assign to value: ‘str’ is a ‘let’ constant.”

Denn durch die Verwendung von let wurde eine Konstante definiert.

Datentypen angeben?

Bei der Definition einer Variable muss kein Datentyp angegeben werden. Swift ist in der Lage, den Typ herauszufinden, was als type inference bezeichnet wird. Freilich kann man auch einen Datentyp angeben, was hier — also bei einer Zeichenfolge (String) — wie folgt aussehen würde:

 var myString: String = "Hello, World!"

Die Variable hat in diesem Fall die Bezeichnung “myString”, gefolgt — nach einem Doppelpunkt — vom Dateityp String. Der zugewiesene Wert lautet: “Hello, World!”.

Durch einen Klick auf den Variablennamen bei gedrückter option– bzw. alt-Taste kann man übrigens feststellen, um welchen Dateityp es sich handelt.

Hinsichtlich der Zuweisung einer Zahl zu einer Variablen kann man Int (für Ganzzahlen) oder Double / Float (für Gleitkommazahlen) verwenden.

let num1: Int = 4
let num2: Double = 7.21
let num3: Float = 34.8

Welche Datentypen gibt es noch?

Da ich schon einige Datentypen angesprochen habe, möchte an dieser Stelle noch etwas genauer auf dieses Thema eingehen. Wie aus den bisherigen Beispielen bereits ersichtlich wurde, bestimmt der Datentyp, was für ein Wert einer Variablen zugewiesen werden darf. Und wie bereits erwähnt, muss in Swift der Typ nicht explizit angegeben werden, denn der Compiler ist in der Lage, anhand des Wertes auf den entsprechenden Typ zu schließen. Dies wird als type inference bezeichnet.

Neben den bisher erwähnten Datentypen String, Int, Double und Float, gibt es noch weitere fundamentale Typen. Da wäre zunächst Bool für die Booleanschen Werte, also true und false.

Des Weiteren existieren von Int einige Variationen:

  • UInt (unsigned int): Wie man anhand des “unsigned” erahnen kann, umfasst dieser Typ nur positive Ganzzahlen.
  • Int8, UInt8, Int16, UInt16, Int32, UInt32, Int64, UInt64: Auch hier geht es um Ganzzahlen. Der Unterschied dieser Int-Variationen besteht in der Anzahl der Bytes, die für die Werte zur Verfügung stehen.

Nicht vergessen möchte ich Character. Während der Typ String eine Zeichenkette meint, geht es bei diesem Datentyp um ein einzelnes Zeichen. Ein String ist eine Summe von Werten des Typs Character.

Und wenn Ihr Euch jetzt noch fragt, was der Unterschied von Float und Double ist, die ja beide Fließkommazahlen umfassen, hier die Antwort: Der Typ Double ist von höhere Präzision, kann also mehr Nachkommastellen darstellen.

Und das waren auch schon die Grundlagen zu Variablen und Konstanten in Swift. Im nächsten Teil werfen wir einen genaueren Blick auf den Datentyp String.