Grundlegende Datentypen

von @ralfebert · aktualisiert am 4. November 2021
Xcode 13 & Swift 5.5
Swift Kurzreferenz

Numerische Werte

Die Swift Standard Library und das Foundation-Framework stellen grundlegende Datentypen bereit. So zum Beispiel Typen für vorzeichenlose und vorzeichenbehaftete ganzzahlige Werte, für Dezimal-/Fließkommazahlen und boolesche Werte:

var numberInt    : Int      // plattformabhängig Int32 bzw. Int64
var numberUInt   : UInt     // plattformabhängig UInt32 bzw. UInt64

var numberInt8   : Int8     //                       -128 -                       127
var numberInt16  : Int16    //                    -32.768 -                    32.767
var numberInt32  : Int32    //             -2.147.483.648 -             2.147.483.647
var numberInt64  : Int64    // -9.223.372.036.854.775.808 - 9.223.372.036.854.775.807

var numberUInt8  : UInt8    //                          0 -                        255
var numberUInt16 : UInt16   //                          0 -                     65.535
var numberUInt32 : UInt32   //                          0 -              4.294.967.295
var numberUInt64 : UInt64   //                          0 - 18.446.744.073.709.551.615

var numberDecimal: Decimal  // Dezimalzahl (Wertebereich uneingeschränkt)
var numberFloat  : Float    // 32-bit Fließkommazahl
var numberDouble : Double   // 64-bit Fließkommazahl

var booleanValue : Bool     // true oder false

Zeichenketten

Swift stellt für Zeichenketten den Typ String bereit. Dies ist ebenfalls ein Wertetyp, ein mit let deklarierter String ist unveränderlich. In Swift können in Zeichenketten mittels der String-Interpolation-Syntax \(...) Werte eingesetzt bzw. Ausdrücke evaluiert werden:

let words = ["bird", "tree", "house"]
let formattedString = "Results: \(words.count) words in \(words)"

Listen

In Swift können Listen mit dem Array-Literal [...] erzeugt werden:

var words = ["bird", "tree", "house"]
let numbers = [1, 2, 3]

Es handelt sich dabei um eine veränderliche Liste, sofern die Deklaration mit var erfolgt. Der Listentyp macht Gebrauch von dem generischen Typsystem von Swift. Im Beispiel wird der Compiler z.B. für words automatisch den Typ Array<String> ermitteln:

var words: Array<String> = ["bird", "tree", "house"]
let numbers: Array<Int> = [1, 2, 3]

In der Praxis werden diese expliziten Typdeklarationen sogut wie immer weggelassen bzw. folgende Kurzsyntax [Typ] verwendet:

var words: [String] = ["bird", "tree", "house"]
let numbers: [Int] = [1, 2, 3]

Bei der Verwendung von Listen ermittelt und prüft der Compiler die Typen der Listenelemente. So werden in folgendem Beispiel die Konstanten vom Compiler automatisch als String deklariert:

let firstWord = words.first
let secondWord = words[1]
let lastWord = words.last

Achtung: Array ist in Swift als Wertetyp (struct) definiert. Das bedeutet, dass Listen pass-by-value-Verhalten haben:

var anotherList = words
words.append("another element")
print(words)         // ["bird", "tree", "house", "another element"]
print(anotherList)   // ["bird", "tree", "house"]

Weitere Informationen

Weitere Datentypen