I den här handledningen lär du dig om olika datatyper som Swift-programmeringsspråk stöder och använder det medan du skapar en variabel eller en konstant.
En datatyp är den typ av data (värde) som en variabel eller konstant kan lagra i den. I artikeln Swift Variables and Constants skapade du till exempel en variabel och en konstant för att lagra strängdata i minnet.
Dessa data kan vara en text / sträng ("Hello") eller ett nummer (12.45) eller bara bitar (0 & 1). Definition av datatyp säkerställer att endast den definierade datatypen lagras.
Låt oss titta på ett scenario:
Antag att du vill skapa ett spel. Eftersom de flesta spel visar hög poäng och spelarens namn efter att spelet är klart måste du lagra dessa två data för ditt spel.
Den höga poängen är ett tal (t.ex. 59) och spelarens namn en sträng (t.ex. Jack). Du kan skapa två variabler eller konstanter för att lagra data.
I Swift kan detta göras genom att deklarera variabler och datatypen som:
var highScore: Int = 59 var playerName: String = "Jack"
Här förklarade vi highScore-variabel av typen Int
som lagrar värde 59. Och playerName-variabel av typen String
som lagrar värde Jack.
Men om du gör något så här:
var highScore: Int = "Jack"
Du får ett kompileringsfel om att det inte går att konvertera värdet av typen 'String' till den angivna typen 'Int' .
Det beror på att du deklarerade highScore för att lagra heltal men placerade sträng i det. Detta fel säkerställer att highScore endast kan lagra ett nummer och inte spelarens namn.
Storlek på en datatyp
En annan viktig del av en datatyp är dess storlek. Detta specificerar storleken på data som kan lagras i en viss variabel eller konstant.
En typs storlek mäts i termer av bit och kan lagra värden upp till 2 bitar . Om du inte känner till Bit, tänk på det som ett värde som antingen är 0 eller 1.
För en typstorlek = 1 bit kan den bara lagra upp till, 2 1 = 2, två värden: antingen 0 eller 1. Så ett 1-bitars system för ett bokstavsprogram kan tolka 0 som a / 0 och 1 som b / 1.0.
0 -> a eller 0 1 -> b eller 1
På samma sätt kan ett tvåbitarsystem lagra upp till 2 2 = 4 värden: (00,01,10,11) och varje kombination kan representeras som:
00 -> a eller 0 01 -> b eller 1 11 -> c eller 2 10 -> d eller 3
För ett bitsystem kan det lagra högst 2 n värden i det.
Snabba datatyper
De vanligaste datatyperna som används i snabb listas nedan:
Bool
- Variabel / konstant deklarerad av Bool-typ kan bara lagra två värden antingen
true
ellerfalse
. - Standardvärde : falskt
- Det används ofta när du arbetar med
if-else
uttalande. Snabb om annars artikeln täcker i detalj om det.
Exempel 1: Boolesk datatyp
let result:Bool = true print(result)
När du kör programmet blir resultatet:
Sann
Heltal
- Variabel / konstant deklarerad av heltalstyp kan lagra heltal både positiva och negativa inklusive noll utan bråkdelar.
- Standardvärde : 0
- Storlek : 32/64 bit beror på plattformstypen.
- Område : -2,147,483,648 till 2,147,483,647 (32 bitars plattform)
-9223372036854775808 till 9223372036854775807 (64 bitars plattform - Det finns många varianter av Integer type.eg
UInt
,Int8
,Int16
etc. Den vanligaste du använder är avInt
. - Om du har ett krav på att ange storleken / typ av heltal en variabel / konstant kan hålla, kan du lagra det mer specifikt med hjälp av
UInt
,Int8
,Int16
etc. som vi kommer att undersöka nedan.
Exempel 2: Heltalsdatatyp
var highScore:Int = 100 print(highScore) highScore = -100 print(highScore)
När du kör programmet blir resultatet:
100-100
I exemplet ovan förklarade vi en variabel highScore av typen Int
. Först tilldelade vi det med ett värde på 100 så print(highScore)
matar ut 100 på skärmen.
Senare ändrade vi värdet till -100 med hjälp av tilldelningsoperatören som highScore = -100
så, print(highScore)
matar ut -100 på skärmen.
Låt oss utforska några varianter av Int
typen i Swift.
Int8
- Variant av heltalstyp som kan lagra både positiva och negativa små siffror.
- Standardvärde : 0
- Storlek : 8 bitar
- Räckvidd : -128 till 127
Ett Int8
heltal kan lagra totalt 2 8 = (256) värden i det. dvs det kan lagra nummer från 0 till 255 eller hur?
Ja, du har rätt. Men eftersom, Int8
inkluderar både positiva och negativa tal kan vi lagra nummer från -128 till 127 inklusive 0 som uppgår till 256 värden eller siffror.
var highScore:Int8 = -128//ok highScore = 127 //ok highScore = 128 // error here highScore = -129 //error here
Du kan också ta reda på det högsta och lägsta värdet som en typ kan lagra med .min
och .max
inbyggda Swift-funktioner.
Exempel 3: Datatyp Max och Min Int8
print(Int8.min) print(Int8.max)
När du kör programmet blir resultatet:
-128 127
UInt
- Variant av heltalstyp som heter UInt (osignerat heltal) som endast kan lagra osignerade nummer (positiva eller noll).
- Standardvärde : 0
- Storlek : 32/64 bit beror på plattformstypen.
- Område : 0 till 4294967295 (32 bitars plattform)
0 till 18446744073709551615 (64 bitars plattform)
Exempel 4: UInt-datatyp
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,