Grundlegende Datentypen
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
-
SetIn einem Set kann jeder Wert nur einmal vorhanden sein, die Reihenfolge ist nicht definiert und die Prüfung ob ein Element enthalten ist, ist sehr performant.
-
DictionaryEin Dictionary (Assoziatives Array) ordnet eindeutigen Schlüsseln Werte zu.
-
Swift CollectionsDas Swift-Collections-Package stellt weitergehende Datenstrukturen wie Deque, OrderedSet und OrderedDictionary bereit.