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

Swift数据类型

In questo tutorial, imparerai i diversi tipi di dati supportati dal linguaggio di programmazione Swift e come usarli nella creazione di variabili o costanti.

Il tipo di dati è il tipo di dati (valore) che può essere memorizzato in una variabile o costante. Ad esempio, nell'articoloVariabili e costanti Swift, hai creato una variabile e una costante per memorizzare i dati di stringa nella memoria.

I dati possono essere testuali/strighe ("Hello") o numerici (12.45), o bit (0 & 1). Definire il tipo di dati garantisce che vengano memorizzati solo i tipi di dati definiti.

Vediamo una scena:

Supponiamo di voler creare un gioco. Poiché la maggior parte dei giochi mostra il punteggio più alto e il nome del giocatore alla fine del gioco, hai bisogno di memorizzare questi due dati per il gioco.

Il punteggio più alto (highScore) è un numero (ad esempio 59), il nome del giocatore (playerName) è una stringa (ad esempio Jack). Puoi creare due variabili o costanti per memorizzare i dati.

In Swift, questo può essere fatto dichiarando le variabili e i tipi di dati:

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

Qui abbiamo dichiarato una variabile di tipo Int chiamata HighScore che memorizza il valore 59. E una variabile di tipo String chiamata playerName che memorizza il valore Jack.

Ma se esegui la seguente operazione:

var highScore: Int = "Jack"

Otterrai un errore di compilazione, lanciando Impossibile convertire il valore di tipo 'String' nel tipo 'Int' specificato.

Questo è perché hai dichiarato highScore per memorizzare un valore intero, ma ci hai messo una stringa. Questo errore garantisce che highScore possa memorizzare solo un numero e non il nome del giocatore.

La dimensione del tipo di dati

Un'altra parte importante del tipo di dati è la sua dimensione. Questo specifica la dimensione dei dati che può essere memorizzata in una variabile o costante data.

La dimensione del tipo è misurata in bit, può memorizzare al massimo 2bits. Se conosci il Bit (bit), puoi immaginarlo come un valore 0 o 1.

Quindi, perTipo size = 1 bit, può memorizzare al massimo 2 1 = 2 valori: 0 o 1. Pertanto, il sistema a uno bit del programma può interpretare 0 come a/0 e 1 come b/1.0.

0 -> a o 0 
1 -> b o 1

Allo stesso modo, il sistema a due bit può memorizzare al massimo2 2 = 4 valori: (00,01,10,11), ogni combinazione può essere rappresentata come:

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

Per il sistema a bit, può memorizzare al massimo2 n valoriValore.

Tipi di dati Swift

Di seguito è riportato l'elenco dei tipi di dati più utilizzati in Swift:

Tipo booleano (Bool)

  • Le variabili o costanti dichiarate come tipo Bool possono memorizzare solo due valori: true o false.

  • Valore predefinito: false

  • Vengono spesso utilizzati per gestire le istruzioni if-else. Per ulteriori informazioni, consulta l'articolo Swift if else.

Esempio 1: Tipo di dati booleani

let result: Bool = true
print(result)

Quando si esegue il programma, l'output è:

true

Tipo di dati intero (Integer)

  • Le variabili o costanti dichiarate come tipo intero possono memorizzare numeri interi positivi e negativi, inclusi zero, senza parte decimale.

  • Valore predefinito:0

  • dimensione:32/64-bit a seconda del tipo di piattaforma.

  • Intervallo di valori: -2,147,483,648 a 2,147,483,647 (sul piattaforma a 32 bit)
    -9223372036854775808 a 9223372036854775807 (sul piattaforma a 64 bit)

  • Ci sono molte varianti del tipo Integer, come UInt, Int8, Int16, tra cui il più utilizzato è Int.

  • Se hai bisogno di specificare la dimensione o il tipo di intero che una variabile o costante può contenere, puoi utilizzare UInt, Int8, Int16 per memorizzarlo in modo più specifico, queste informazioni saranno introdotte di seguito.

Esempio 2: Tipo di dati interi

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

Quando si esegue il programma, l'output è:

100
-100

Nell'esempio sopra, abbiamo dichiarato una variabile di tipo Int chiamata highScore. Prima di tutto, l'abbiamo assegnato un valore di 100, quindi print (highScore) ha outputto 100 sullo schermo.

Successivamente, abbiamo utilizzato l'operatore di assegnazione highScore = -100 per modificare il valore in -100, quindi, abbiamo stampato (highScore) output-100 sullo schermo.

Vediamo alcune varianti del tipo di dati Int nel SWIFT.

Int8 (intero)

  • Una variante del tipo di dati intero che può memorizzare numeri positivi e negativi.

  • Valore predefinito:0

  • dimensione:8-bit

  • intervallo:-128 a 127

Un intero Int8 può memorizzare in totale 2 8 =(256) valori. Questo significa che può memorizzare numeri da 0 a 255.

Ma poiché Int8 include numeri positivi e negativi, possiamo memorizzare numeri da -128 a 127, inclusi 0, per un totale di 256 valori o numeri.

var highScore:Int8 = -128// corretto
highScore = 127 // corretto
highScore = 128 // errore
highScore = -129 // errore

Puoi anche usare Funzione Swift I metodi .min e .max integrati trovano i valori massimi e minimi che può memorizzare il tipo.

Esempio 3: tipo di dati Int8 massimi e minimi

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

Quando si esegue il programma, l'output è:

-128
127

UInt (unsigned integer)

  • Una variante del tipo di dati intero chiamata UInt (unsigned integer) può memorizzare solo numeri senza segno (valori positivi o zero).

  • Valore predefinito:0

  • dimensione:32/64-bit a seconda del tipo di piattaforma.

  • intervallo:0 a 4294967295 (platforma 32-bit)
    0 a 18446744073709551615 (platforma 64-bit)

Esempio 4: tipo di dati UInt

var highScore:UInt = 100
highScore = -100 // errore di compilazione quando si esegue l'operazione seguente

Il codice sopra genererà un errore di compilazione perché gli interi senza segno possono memorizzare solo 0 o valori positivi. Tentare di memorizzare un valore negativo negli interi senza segno genererà un errore.

Float (floating point number)

  • Le variabili o costanti dichiarate come floating point possono memorizzare numeri con virgola mobile o con virgola mobile.

  • Valore predefinito:0.0

  • dimensione:32-bit floating point number.

  • intervallo:1.2 * 10 -38a 3.4 * 10 38(〜6 cifre)

Esempio 5: tipo di dati floating point

let highScore:Float = 100.232
print(highScore)

Quando si esegue il programma, l'output è:

100.232

Double (double precision floating point number)

  • Le variabili o costanti dichiarate come Double也将带小数点或带小数点的数字存储为Float,但支持更大的小数点。

  • Valore predefinito:0.0

  • dimensione:64-bit floating point number. (Pertanto, le variabili di tipo Double possono memorizzare numeri con virgola mobile o con virgola mobile maggiore rispetto a quella supportata da Float)

  • intervallo2.3×10 -308~1.7 * 10 308(~15 cifre)

Esempio 6: Tipo di dati Double

let highScore:Double = 100.232321212121
print(highScore)

Quando si esegue il programma, l'output è:

100.232321212121

Character (carattere)

  • Le variabili o le costanti dichiarate come tipo Character possono memorizzare un'unità di stringa letterale.

  • Puoi usare la sequenza di escape \u{n} (carattere Unicode, n espresso in esadecimale) in Swift per usare emoji o lingue diverse dall'inglese come caratteri.

Esempio 7: Tipo di dati Character

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

Quando si esegue il programma, l'output è:

J
Ĵ

String (stringa)

  • Le variabili o le costanti dichiarate come tipo String possono memorizzare un insieme di caratteri.

  • Valore predefinito:""(stringa vuota)

  • È di tipo valore.

  • Puoi usare un ciclo for-in per percorrere una stringa.RiferimentoSwiftfor-in循环.

  • Swift supporta anche alcune sequenze di escape speciali per usarle nelle stringhe. Ad esempio,

    • \0 (carattere nullo),

    • \\\ (backslash normale\),

    • \t (tabulazione),

    • \v (etichetta verticale),

    • \r (return),

    • \" (apice doppio),

    • \' (apice singolo), e

    • \u{n} (stringa Unicode, n espressa in esadecimale).

Esempio 8: Tipo di dati stringa

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

Quando si esegue il programma, l'output è:

Jack
"Jack"
Ĵack

RiferimentoSwift caratteri e stringhe,per ulteriori informazioni sulla dichiarazione, le operazioni e gli esempi di caratteri e stringhe.

Oltre a questo tipo di dati, Swift ha altri tipi di dati avanzati, come tuple,optional,range,class,structure 等。Inizierai a imparare in seguito.

Cose da ricordare

1. Poiché Swift è un linguaggio di inferenza di tipo, le variabili o le costanti possono inferire automaticamente il tipo dal valore memorizzato. Pertanto, puoi saltare il tipo durante la creazione di variabili o costanti. Tuttavia, puoi considerare di scrivere il tipo per la leggibilità, ma non è raccomandato farlo.

示例9:类型推断的变量/常量

letplayerName="Jack"
print(playerName)

Swift编译器可以根据其值自动推断该变量为String类型。

2.Swift是一种类型安全的语言。如果将变量定义为某种类型,则以后不能使用其他数据类型进行更改。

示例10:Swift是一种类型安全的语言

letplayerName:String
playerName=55//编译时间错误

上面的代码将产生一个错误,因为我们已经指定变量playerName将为String。因此我们无法在其中存储一个整数。