I denne vejledning lærer du om forskellige datatyper, som Swift-programmeringssprog understøtter, og bruger det, mens du opretter en variabel eller en konstant.
En datatype er den datatype (værdi), som en variabel eller konstant kan gemme i den. For eksempel oprettede du i artiklen Swift-variabler og -konstanter en variabel og en konstant til at gemme strengdata i hukommelsen.
Disse data kan være en tekst / streng ("Hej") eller et tal (12.45) eller bare bits (0 & 1). Definition af datatypen sikrer, at kun den definerede datatype gemmes.
Lad os se på et scenario:
Antag at du vil oprette et spil. Da de fleste spil viser høj score og spillerens navn, når spillet er afsluttet, skal du gemme disse to data til dit spil.
Den høje score er et tal (f.eks. 59), og spillerens navn er en streng (f.eks. Jack). Du kan oprette to variabler eller konstanter til at gemme dataene.
I Swift kan dette gøres ved at erklære variabler og datatypen som:
var highScore: Int = 59 var playerName: String = "Jack"
Her erklærede vi highScore-variabel af typen, Int
der gemmer værdi 59. Og playerName-variabel af typen, String
der gemmer værdi Jack.
Men hvis du gør noget som dette:
var highScore: Int = "Jack"
Du får en kompileringstidsfejl med angivelse af, at værdien af typen 'String' ikke kan konverteres til den angivne type 'Int' .
Det er fordi du erklærede highScore for at gemme heltal, men placerede streng i den. Denne fejl sikrer, at highScore kun kan gemme et nummer og ikke spillerens navn.
Størrelsen på en datatype
En anden vigtig del af en datatype er dens størrelse. Dette specificerer størrelsen på data, der kan lagres i en given variabel eller konstant.
En types størrelse måles i form af bit og kan gemme værdier op til 2 bit . Hvis du ikke ved noget om Bit, skal du tænke på det som en værdi, der enten er 0 eller 1.
Så for en type size = 1 bit, det kan kun lagre op, 2 1 = 2, to værdier: enten 0 eller 1. Så en 1 bit system til et brev program kan fortolke 0 som en / 0 og 1 som b / 1.0.
0 -> a eller 0 1 -> b eller 1
Ligeledes kan et to-bit system gemme op til 2 2 = 4 værdier: (00,01,10,11), og hver kombination kan repræsenteres som:
00 -> a eller 0 01 -> b eller 1 11 -> c eller 2 10 -> d eller 3
For et bitsystem kan det gemme maksimalt 2 n værdier i det.
Hurtige datatyper
De mest almindelige datatyper, der bruges i hurtig, er angivet nedenfor:
Bool
- Variabel / konstant erklæret af Bool-type kan kun gemme to værdier enten
true
ellerfalse
. - Standardværdi : falsk
- Det bruges ofte, når du arbejder med
if-else
udsagn. Hurtig hvis ellers artiklen dækker detaljeret om det.
Eksempel 1: Boolsk datatype
let result:Bool = true print(result)
Når du kører programmet, vil output være:
sand
Heltal
- Variabel / konstant erklæret af heltalstype kan gemme hele tal både positive og negative inklusive nul uden brøkdele.
- Standardværdi : 0
- Størrelse : 32/64 bit afhænger af platformstypen.
- Område :
-2,147,483,648 til 2,147,483,647 ( 32 bit platform) -9223372036854775808 til 9223372036854775807 (64 bit platform) - Der er mange varianter af Integer type.eg
UInt
,Int8
,Int16
etc. Den mest almindelige, du bruger, er afInt
. - Hvis du har et krav om at angive størrelsen / typen af heltal en variabel / konstant kan holde, kan du gemme det mere specifikt ved hjælp
UInt
,Int8
,Int16
etc., som vi skal udforske nedenfor.
Eksempel 2: Heltalsdatatype
var highScore:Int = 100 print(highScore) highScore = -100 print(highScore)
Når du kører programmet, vil output være:
100-100
I ovenstående eksempel erklærede vi en variabel highScore af typen Int
. Først tildelte vi den med en værdi på 100, så print(highScore)
output 100 på skærmen.
Senere ændrede vi værdien til -100 ved hjælp af tildelingsoperatøren som highScore = -100
sådan, print(highScore)
output -100 på skærmen.
Lad os undersøge nogle varianter af Int
typen i Swift.
Int8
- Variant af heltalstype, der kan gemme både positive og negative små tal.
- Standardværdi : 0
- Størrelse : 8 bit
- Område : -128 til 127
Et Int8
heltal kan gemme totalt 2 8 = (256) værdier i det. dvs. det kan gemme numre fra 0 til 255, ikke?
Yes, you are correct. But since, Int8
includes both positive and negative numbers we can store numbers from -128 to 127 including 0 which totals to 256 values or numbers.
var highScore:Int8 = -128//ok highScore = 127 //ok highScore = 128 // error here highScore = -129 //error here
You can also find out the highest and lowest value a type can store using .min
and .max
built in Swift functions.
Example 3: Max and Min Int8 data type
print(Int8.min) print(Int8.max)
When you run the program, the output will be:
-128 127
UInt
- Variant of Integer type called UInt (Unsigned Integer) which can only store unsigned numbers (positive or zero).
- Default Value: 0
- Size: 32/64 bit depends on the platform type.
- Range: 0 to 4294967295 (32 bit platform)
0 to 18446744073709551615 (64 bit platform)
Example 4: UInt data type
var highScore:UInt = 100 highScore = -100//compile time error when trying to
The above code will give you a compile time error because a Unsigned Integer can only store either 0 or a positive value. Trying to store a negative value in an Unsigned Integer will give you an error.
Float
- Variables or Constants declared of float type can store number with decimal or fraction points.
- Default Value: 0.0
- Size: 32 bit floating point number.
- Range: 1.2*10-38 to 3.4 * 1038 (~6 digits)
Example 5: Float data type
let highScore:Float = 100.232 print(highScore)
When you run the program, the output will be:
100.232
Double
- Variables / Constants declared of Double type also stores number with decimal or fraction points as Float but larger decimal points than Float supports.
- Default value : 0.0
- Size: 64-bit floating point number. (Therefore, a variable of type Double can store number with decimal or fraction points larger than Float supports)
- Range: 2.3*10-308 to 1.7*10308 (~15 digits)
Example 6: Double data type
let highScore:Double = 100.232321212121 print(highScore)
When you run the program, the output will be:
100.232321212121
Character
- Variables/Constants declared of Character type can store a single-character string literal.
- You can include emoji or languages other than english as an character in Swift using escape sequence u(n) (unicode code point ,n is in hexadecimal).
Example 7: Character data type
let playerName:Character = "J" let playerNameWithUnicode:Character = "u(134)" print(playerName) print(playerNameWithUnicode)
When you run the program, the output will be:
J Ĵ
String
- Variables or Constants declared of String type can store collection of characters.
- Default Value: "" (Empty String)
- It is Value type. See Swift value and Reference Type .
- You can use for-in loop to iterate over a string. See Swift for-in loop.
- Swift also supports a few special escape sequences to use them in string. For example,