English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Swift-Datentypen

In diesem Tutorial werden Sie die verschiedenen Datenarten des Swift-Programmierspraches kennenlernen und sie bei der Erstellung von Variablen oder Konstanten verwenden.

Datenarten sind die Typen von Daten (Werten), die in Variablen oder Konstanten gespeichert werden können. Zum Beispiel im ArtikelSwift-Variable und Konstanten,Sie haben eine Variable und eine Konstante erstellt, um Zeichenkettendaten im Speicher zu speichern.

Diese Daten können Text sein/Zeichenkette („Hello“) oder Zahl(12.45) kann auch ein Bit (0&1)。Datenarten definieren kann sicherstellen, dass nur definierte Datenarten gespeichert werden.

Lassen Sie uns einen Szenario betrachten:

Angenommen, Sie möchten ein Spiel erstellen. Da die meisten Spiele am Ende des Spiels die Highscore und den Namen des Spielers anzeigen, müssen Sie diese beiden Daten für das Spiel speichern.

Hochwert (highScore) ist eine Zahl (z.B. 59),der Name des Spielers (playerName) ist ein String (z.B. Jack). Sie können zwei Variablen oder Konstanten erstellen, um Daten zu speichern.

In Swift kann dies durch die Deklaration von Variablen und Datenarten erfolgen:

var highScore: Int = 59
var playerName:String = "Jack"

Hier haben wir die Int-Variablen HighScore deklariert, die den Wert59。 Und der String-Typ-Variable playerName, die den Wert Jack speichert.

Aber wenn Sie die folgenden Aktionen ausführen:

var highScore:Int = "Jack"

Sie erhalten einen Compilerfehler, der ausgelöst wird Der Wert des Typs 'String' kann nicht in den angegebenen Typ 'Int' umgewandelt werden

Dies liegt daran, dass Sie highScore als Integer-Wert speichern wollten, aber darin einen String platziert haben. Dieser Fehler stellt sicher, dass highScore nur eine Zahl speichern kann und nicht den Namen des Spielers.

Die Größe der Datenarten

Ein weiterer wichtiger Teil der Datenarten ist ihre Größe. Dies spezifiziert die Größe der Daten, die in einer bestimmten Variable oder Konstante gespeichert werden können.

Die Größe des Types wird in Bits gemessen und kann maximal speichern 2bits。Wenn Sie Bit (Bit) verstehen, können Sie es sich als 0 oder1Werte.

Daher, fürType size = 1 bit, dann kann es maximal speichern 2 1 = 2zwei Werte: 0 oder 1。Daher kann das Alphabet-Programm1Bit-System kann 0 als a interpretieren/0, und1wird als b interpretiert/1.0.

0 -> a oder 0 
1 -> b oder 1

Gleichzeitig kann das Zweier-System maximal speichern2 2 = 4Werte: (00,01,10,11) können jede Kombination darstellen:

00 -> a oder 0
01 -> b oder 1
11 -> c oder 2
10 -> d oder 3

Für das Bit-System kann es maximal speichern2 n WerteWerte.

Swift-Datenarten

Nachstehend sind die häufigsten Datenarten in Swift aufgeführt:

Boolscher Typ (Bool)

  • Variablen, die als Bool-Typ deklariert sind/Konstanten können nur zwei Werte speichern true oder false.

  • Standardwert:false

  • Bei der Verarbeitung von if-wird es oft im else-Statement verwendet. Sie können den Artikel referenzieren Swift if else

Beispiel1:Boolscher Daten Typ

let result:Bool = true
print(result)

Wenn Sie das Programm ausführen, lautet die Ausgabe:

true

Integer-Typ (Integer)

  • Variablen, die als Integer-Typ deklariert sind/Konstanten können positive und negative Werte, einschließlich Null, speichern, ohne Dezimalteile.

  • Standardwert: 0

  • Size:32/64bit depends on the platform type.

  • Wertebereich:-2,147,483,648 to 2,147,483,647(32bit platform)
    -9223372036854775808 to 9223372036854775807(64bit platform)

  • Es gibt viele Varianten des Integer-Typs, wie z.B. UInt und Int8, Int16. The most commonly used is Int.

  • If you need to specify a variable/the size of integers that constants can hold/types, you can use UInt, Int8, Int16and more specifically store it, we will introduce these below.

Beispiel2: integer data type

var highScore: Int = 100
print(highScore)
highScore = -100
print(highScore)

Wenn Sie das Programm ausführen, lautet die Ausgabe:

100
-100

In the above example, we declared a variable highScore of type Int. First, we assigned it a value of100, so print (highScore) outputs to the screen100.

Later, we use the assignment operator highScore =-100, so the value is changed to -100, so when printing (highScore) output-100.

Let's take a look at some variants of the Int type in Swift.

Int8(integer)

  • can store both positive and negative numbers.

  • Standardwert: 0

  • Size:8bit

  • Bereich:-128 to 127

one Int8Integers can store a total of2 8 =(256) values. That is, it can store from 0 to 255between numbers.

but because Int8 including positive and negative numbers, we can store from-128to127numbers, including 0, total of256values or numbers.

var highScore: Int8 = -128//correct
highScore = 127 //correct
highScore = 128 //error
highScore = -129 //error

You can also use Swift function Built-in .min and .max functions can find the maximum and minimum values that the type can store.

Beispiel3: maximum and minimum Int8Data type

print(Int8.min)
print(Int8.max)

Wenn Sie das Programm ausführen, lautet die Ausgabe:

-128
127

UInt (unsigned integer)

  • Variants of integer types called UInt (unsigned integers) can only store unsigned numbers (positive numbers or zero).

  • Standardwert: 0

  • Size:32/64bit depends on the platform type.

  • Bereich: 0 to 4294967295(32bit platform)
    0 to 18446744073709551615(64bit platform)

Beispiel4: UInt data type

var highScore: UInt = 100
highScore = -100 //Compile-time error occurs when trying to perform the following operation

The above code will throw a compile-time error because unsigned integers can only store 0 or positive values. Trying to store a negative value in an unsigned integer will result in an error.

Float (floating-point number)

  • Variables or constants declared as floating-point can store numbers with decimals or decimal points.

  • Standardwert: 0.0

  • Size:32bit floating-point numbers.

  • Bereich:1.2 * 10 -38to3.4 * 10 38(〜6bit numbers)

Beispiel5: floating-point data type

let highScore: Float = 100.232
print(highScore)

Wenn Sie das Programm ausführen, lautet die Ausgabe:

100.232

Double (double-precision floating-point number)

  • Variables declared as Double type/Constants will also store numbers with decimals or decimal points as Float, but with a larger decimal point support.

  • Standardwert: 0.0

  • Size:64Floating-point number. (Therefore, variables of type Double can store numbers with decimals or decimal points larger than those supported by Float)

  • Bereich:2.3×10 -308〜1.7 * 10 308(〜15Bit)

Beispiel6:Doppelte Genauigkeit-Datentyp

let highScore:Double = 100.232321212121
print(highScore)

Wenn Sie das Programm ausführen, lautet die Ausgabe:

100.232321212121

Character (Zeichen)

  • Variablen, die als Character-Typ deklariert sind/Konstanten können Einzeichen-Zeichenkette-Literal speichern.

  • Sie können in Swift die Escape-Sequenz \u{n} (Unicode-Zeichen, n in Hexadezimalform) verwenden, um Emojis oder andere als Zeichen zu verwenden, die nicht Englisch sind.

Beispiel7:Zeichendatentyp

let playerName:Character = "J"
let playerNameWithUnicode:Character = "\u{134"}
print(playerName)
print(playerNameWithUnicode)

Wenn Sie das Programm ausführen, lautet die Ausgabe:

J
Ĵ

String (Zeichenkette)

  • Variablen oder Konstanten, die als String-Typ deklariert sind, können Zeichenmengen speichern.

  • Standardwert:""(leere Zeichenkette)

  • es ist ein Wertetyp.

  • Sie können mit for-in Schleifen durch Zeichenfolgen zu iterieren.ReferenzSwift for-in Schleifen

  • Swift unterstützt auch einige spezielle Escape-Sequenzen, um sie in Zeichenfolgen zu verwenden. Zum Beispiel,

    • \0 (Leerzeichen),

    • \\\ (ein gewöhnlicher Backslash\),

    • \t (Tabulator),

    • \v (Vertikalspalt),

    • \r (Return),

    • \" (doppeltes Anführungszeichen),

    • \' (einzelnes Anführungszeichen), und

    • \u{n} (Unicode-Zeichenkette, n in Hexadezimalform).

Beispiel8:Zeichenkettendatentyp

let playerName = "Jack"
let playerNameWithQuotes = "\"Jack\""
let playerNameWithUnicode = "\u{134}ack"
print(playerName)
print(playerNameWithQuotes)
print(playerNameWithUnicode)

Wenn Sie das Programm ausführen, lautet die Ausgabe:

Jack
"Jack"
Ĵack

Bitte beziehen Sie sich aufSwift-Zeichen und Zeichenfolgen,um mehr über die Deklaration, Operationen und Beispiele von Zeichen und Zeichenfolgen zu erfahren.

Neben diesem Datentyp gibt es in Swift auch andere fortgeschrittene Datentypen, wie z.B. tuple,optional,range,class,structure Sie werden dies in den folgenden Kapiteln lernen.

Dinge zu beachten

1Da Swift eine Typinferenzsprache ist, kann der Typ von Variablen oder Konstanten aus dem gespeicherten Wert automatisch abgeleitet werden. Daher können Sie beim Erstellen von Variablen oder Konstanten den Typ weglassen. Dennoch sollten Sie es in Betracht ziehen, Typen zur Lesbarkeit hinzuzufügen, aber dies wird nicht empfohlen.

Beispiel9:Typinferenzierte Variable/Konstante

let playerName = "Jack"
print(playerName)

Der Swift-Compiler kann die Variable automatisch auf den Typ String typen.

2. Swift ist eine typsichere Sprache. Wenn eine Variable als某一类型 definiert wird, kann sie später nicht mit anderen Datentypen geändert werden.

Beispiel10:Swift ist eine typsichere Sprache

let playerName: String
playerName = 55 //Kompilierungszeitfehler

Der obige Code wird einen Fehler verursachen, weil wir die Variable playerName bereits als String spezifiziert haben. Daher können wir darin keine Integer speichern.