Rask datatyper (med eksempler)

I denne opplæringen vil du lære om forskjellige datatyper som Swift programmeringsspråk støtter og bruke det mens du lager en variabel eller en konstant.

En datatype er typen data (verdi) en variabel eller konstant kan lagre i den. For eksempel, i artikkelen Swift Variables and Constants, opprettet du en variabel og en konstant for å lagre strengdata i minnet.

Disse dataene kan være en tekst / streng ("Hei") eller et tall (12.45) eller bare biter (0 & 1). Definisjon av datatypen sikrer at bare den definerte datatypen lagres.

La oss se på et scenario:

Anta at du vil lage et spill. Siden de fleste spill viser høy score og spillerens navn etter at spillet er fullført, må du lagre disse to dataene for spillet ditt.

Den høye poengsummen er et tall (f.eks. 59) og spillerens navn en streng (f.eks. Jack). Du kan opprette to variabler eller konstanter for å lagre dataene.

I Swift kan dette gjøres ved å erklære variabler og datatypen som:

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

Her erklærte vi highScore-variabelen av typen Intsom lagrer verdien 59. Og playerName-variabelen av typen Stringsom lagrer verdien Jack.

Men hvis du gjør noe slikt:

 var highScore: Int = "Jack"

Du får en kompileringstidsfeil som sier at du ikke kan konvertere verdien av typen 'Streng' til spesifisert type 'Int' .

Det er fordi du erklærte highScore for å lagre heltall, men plasserte streng i den. Denne feilen sikrer at highScore bare kan lagre et nummer og ikke spillerens navn.

Størrelse på en datatype

En annen viktig del av en datatype er størrelsen. Dette spesifiserer størrelsen på data som kan lagres i en gitt variabel eller konstant.

En type størrelse måles i form av bit og kan lagre verdier opptil 2 bits . Hvis du ikke vet om Bit, kan du tenke på det som en verdi som enten er 0 eller 1.

Så, for en Type størrelse = 1 bit, kan den bare lagre opptil, 2 1 = 2, to verdier: enten 0 eller 1. Så et 1-bits system for et bokstavprogram kan tolke 0 som a / 0 og 1 som b / 1.0.

 0 -> a eller 0 1 -> b eller 1

På samme måte kan et to bits system lagre opptil 2 2 = 4 verdier: (00,01,10,11) og hver kombinasjon kan vises som:

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

For et bit-system kan det lagre maksimalt 2 n verdier i det.

Rask datatyper

De vanligste datatypene som brukes raskt, er oppført nedenfor:

Bool

  • Variabel / konstant deklarert av Bool-type kan bare lagre to verdier enten trueeller false.
  • Standardverdi : false
  • Det brukes ofte når du jobber med if-elseuttalelse. Rask artikkel om dette, hvis ellers.

Eksempel 1: Boolsk datatype

 let result:Bool = true print(result)

Når du kjører programmet, vil utdataene være:

 ekte

Heltall

  • Variabel / konstant erklært av heltall kan lagre hele tall både positive og negative inkludert null uten brøkdeler.
  • Standardverdi : 0
  • Størrelse : 32/64 bit avhenger av plattformtypen.
  • Område :
    -2,147,483,648 til 2,147,483,647 ( 32-biters plattform) -9223372036854775808 til 9223372036854775807 (64-biters plattform)
  • Det finnes mange varianter av Integer type.eg UInt, Int8, Int16etc. Den vanligste du bruker er av Int.
  • Hvis du har et krav om å spesifisere størrelse / type heltall en variabel / konstant kan holde, kan du lagre det mer spesifikt hjelp UInt, Int8, Int16etc. som vi skal utforske nedenfor.

Eksempel 2: Heltalldatatype

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

Når du kjører programmet, vil utdataene være:

 100 -100 

I eksemplet ovenfor erklærte vi en variabel highScore av typen Int. Først tildelte vi den med en verdi på 100, slik at print(highScore)utganger 100 på skjermen.

Senere endret vi verdien til -100 ved å bruke oppdragsoperatøren som highScore = -100det, print(highScore)utganger -100 på skjermen.

La oss utforske noen varianter av Inttypen i Swift.

Int8

  • Variant av heltalstype som kan lagre både positive og negative små tall.
  • Standardverdi : 0
  • Størrelse : 8 bit
  • Rekkevidde : -128 til 127

Et Int8helt tall kan lagre totalt 2 8 = (256) verdier i det. dvs. det kan lagre tall fra 0 til 255, ikke sant?

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,
    • (null character),
    • \ (a plain backslash ),
    • (a tab character),
    • v (a vertical tab),
    • (carriage return),
    • " (double quote),
    • \' (single quote), and
    • u(n) (unicode code point ,n is in hexadecimal).

Example 8: String data type

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

When you run the program, the output will be:

 Jack "Jack" Ĵack 

See Swift characters and strings to learn more about characters and strings declaration, operations and examples.

In addition to this data types, there are also other advanced data types in Swift like tuple, optional, range, class, structure etc. which you will learn in later chapters.

Things to remember

1. Since Swift is a type inference language, variables or constants can automatically infer the type from the value stored. So, you can skip the type while creating variable or constant. However you may consider writing the type for readability purpose but it’s not recommended.

Example 9: Type inferred variable/constant

 let playerName = "Jack" print(playerName) 

Swift compiler can automatically infer the variable to be of String type because of its value.

2. Swift is a type safe language. If you define a variable to be of certain type you cannot change later it with another data type.

Eksempel 10: Swift er et typesikkert språk

 let playerName:String playerName = 55 //compile time error 

Ovennevnte kode vil opprette en feil fordi vi allerede har spesifisert at variabel playerName skal være en streng. Så vi kan ikke lagre et heltall i det.

Interessante artikler...