Tipi di dati Swift
Quando usiamo alcuna programmazione linguaggio di programmazione, è necessario utilizzare una varietà di tipi di dati per memorizzare informazioni diverse.
Il tipo di dati della variabile determina come bit di memoria di questi valori nella memoria del computer. È inoltre possibile specificare il tipo di dati quando si dichiara una variabile.
Tutte le variabili hanno il tipo di dati per determinare quali dati possono essere memorizzati.
Built-in tipi di dati
Swift offre una ricchissima tipi di dati, qui ci sono diversi tipi di dati di uso comune:
Int
In generale, non è necessario designato specificamente interi di lunghezza. Swift fornisce uno speciale tipo intero Int
, la lunghezza del vocabolario originale e la stessa lunghezza piattaforma corrente:
- Sulle piattaforme a 32 bit,
Int
eInt32
stessa lunghezza. - Sulle piattaforme a 64-bit,
Int
eInt64
stessa lunghezza.
A meno che non avete bisogno di un intero lunghezza specifica, in uso generale Int
abbastanza. Questo può migliorare la coerenza e la riusabilità del codice. Anche su piattaforme a 32-bit, Int
campo dei numeri interi che possono essere immagazzinate può essere raggiunto -2,147,483,648
~ 2,147,483,647
, il più delle volte questo è già abbastanza grande.
UInt
Swift offre anche una speciale tipo unsigned UInt
, la lunghezza del vocabolario originale e la stessa lunghezza piattaforma corrente:
- Sulle piattaforme a 32 bit,
UInt
eUInt32
stessa lunghezza. - Sulle piattaforme a 64-bit,
UInt
eUInt64
stessa lunghezza.
Nota:
Cercate di non usareUInt
, a meno che non si ha realmente bisogno di memorizzare una piattaforma corrente e il vocabolario originale del numero intero senza segno stessa lunghezza. In aggiunta a questo, è preferibile utilizzareInt
, anche se si desidera memorizzare il valore di una nota non negativo. uso unificataInt
può migliorare la riusabilità del codice, al fine di evitare la conversione tra diversi tipi di digitale e digitale tipo di corrispondenza di inferenza, consultare il tipo di sicurezza e di inferenza di tipo .
galleggiante
Float è un numero con una parte decimale, ad esempio 3.14159
, 0.1
e -273.15
.
Più ampio del tipo di rappresentazione in virgola mobile di tipo intero che può memorizzare più di Int
numeri di tipo più o meno grandi. offerte Swift due hanno firmato tipo floating-point:
-
Double
rappresentano in virgola mobile a 64 bit. Quando avete bisogno di memorizzare il numero di grandi dimensioni o molto alta precisione in virgola mobile, si prega di utilizzare questo tipo. -
Float
rappresenta numero a virgola mobile a 32 bit. Meno di precisione, quindi siamo in grado di utilizzare questo tipo.
Nota:
Double
precisione è molto elevato, almeno 15 cifre,Float
è successo solo sei cifre. Selezionare l'intervallo di valori a seconda di quale digitare il codice devono essere affrontate.
valore booleano
Swift ha un tipo booleano base (booleano), chiamato Bool. valore booleano si riferisce al valore logico, perché possono essere solo vero o falso. Swift ha due costanti booleano, vero e falso.
stringa
String è un insieme di sequenze di caratteri, quali:
"Hello, World!"
carattere
Personaggio riferisce ad una singola lettera, per esempio:
"C"
tipo opzionale
Utilizzare il tipo opzionale (opzionali) per gestire il caso può essere valori mancanti. tipo opzionale rappresenta un valore o nessun valore.campo di valori
La seguente tabella mostra lo spazio minimo e massimo stoccaggio di diversi tipi di variabili di memoria e tipi di variabili:
tipo | Dimensioni (byte) | Valore intervallo |
---|---|---|
int8 | 1 byte | -127 A 127 |
uint8 | 1 byte | 0-255 |
Int32 | 4 byte | -2147483648 2147483647 |
UInt32 | 4 byte | 0-4294967295 |
Int64 | 8 byte | -9223372036854775808 Per 9223372036854775807 |
UInt64 | 8 byte | 0-18446744073709551615 |
galleggiante | 4 byte | 1.2E-38 a 3.4E + 38 (~ 6 cifre) |
doppio | 8 byte | 2.3E-308 a 1.7E + 308 (~ 15 cifre) |
alias Tipo
Digitare un alias per il tipo di corrente definisce un altro nome, digitare l'alias definiti utilizzando typealias parola chiave. La sintassi è la seguente:
typealias newname = type
L'esempio seguente definisce i piedi tipo alias Int:
typealias Feet = Int
Ora, possiamo definire un alias di variabile:
import Cocoa typealias Feet = Int var distance: Feet = 100 print(distance)
Usiamo il parco giochi del programma di cui sopra, l'output è:
100
tipo di protezione
Swift è un tipo di sicurezza (sicuro tipo) lingua.
Perché Swift è type-safe, quindi sarà il tipo di controllo (controlli di tipo) a compilare il codice, e non corrisponde al tipo di marchio come un errore. Ciò consente di trovare e correggere gli errori nelle prime fasi dello sviluppo del tempo.
import Cocoa var varA = 42 varA = "This is hello" print(varA)
La procedura di cui sopra sarà dato in Xcode:
error: cannot assign value of type 'String' to type 'Int' varA = "This is hello"
Significato non può essere stringa 'stringa' assegnato alla variabile 'Int'.
L'inferenza di tipo
Quando si ha a che fare con diversi tipi di valori, il controllo di tipo può aiutare a evitare errori. Tuttavia, questo non significa che ogni volta che si dichiarano costanti e variabili hanno bisogno di specificare esplicitamente il tipo.
Se non si specifica esplicitamente il tipo, Swift utilizza il tipo di inferenza (inferenza) per selezionare il tipo appropriato.
Ad esempio, se si dà un nuovo valori costanti 42 e non indica il tipo, Swift può dedurre tipo costante Int, perché il valore iniziale si assegna appare come un numero intero:
let meaningOfLife = 42 // meaningOfLife 会被推测为 Int 类型
Allo stesso modo, se non c'è bisogno di indicare il tipo di letterali in virgola mobile, Swift dedurre che si desidera è doppio:
let pi = 3.14159 // pi 会被推测为 Double 类型
Quando un tipo in virgola mobile di inferenza, Swift sarà sempre scegliere al posto del doppio galleggiante.
Se la stessa espressione interi e in virgola mobile, si può dedurre doppio Tipo:
let anotherPi = 3 + 0.14159 // anotherPi 会被推测为 Double 类型
Il valore originario dei 3 non dichiara esplicitamente il tipo, e l'espressione c'è una virgola mobile letterale, l'espressione verrà presume che tipo Double.
Esempi
import Cocoa // varA 会被推测为 Int 类型 var varA = 42 print(varA) // varB 会被推测为 Double 类型 var varB = 3.14159 print(varB) // varC 也会被推测为 Double 类型 var varC = 3 + 0.14159 print(varC)
L'attuazione del codice di cui sopra, l'output è:
42 3.14159 3.14159