Brze vrste podataka (s primjerima)

U ovom vodiču naučit ćete o različitim vrstama podataka koje programski jezik Swift podržava i koristiti ih tijekom stvaranja varijable ili konstante.

Vrsta podataka vrsta je podataka (vrijednosti) koju varijabla ili konstanta može pohraniti u nju. Na primjer, u članku Swift varijable i konstante stvorili ste varijablu i konstantu za pohranu podataka niza u memoriju.

Ti podaci mogu biti tekst / niz ("Pozdrav") ili broj (12.45) ili samo bitovi (0 i 1). Definiranje tipa podataka osigurava pohranu samo definirane vrste podataka.

Pogledajmo scenarij:

Pretpostavimo da želite stvoriti igru. Budući da većina igara prikazuje visoku ocjenu i ime igrača nakon završetka igre, morate pohraniti ova dva podatka za svoju igru.

Najbolji rezultat je broj (npr. 59) i ime igrača niz (npr. Jack). Za pohranu podataka možete stvoriti dvije varijable ili konstante.

U Swiftu se to može učiniti deklariranjem varijabli i tipa podataka kao:

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

Ovdje smo proglasili highScore varijablu tipa Intkoja pohranjuje vrijednost 59. I varijablu playerName tipa Stringkoja pohranjuje vrijednost Jacka.

Međutim, ako napravite nešto poput ovoga:

 var highScore: Int = "Jack"

Dobit ćete pogrešku vremena kompajliranja navodeći da vrijednost tipa 'String' ne može pretvoriti u navedeni tip 'Int' .

To je zato što ste proglasili highScore za pohranu cijele vrijednosti, ali ste u njega postavili niz. Ova pogreška osigurava da highScore može pohraniti samo broj, a ne i ime igrača.

Veličina vrste podataka

Drugi važan dio vrste podataka je veličina. Ovo određuje veličinu podataka koji se mogu pohraniti u zadanu varijablu ili konstantu.

A Tip je veličina se mjeri u odnosu na malo i može pohraniti vrijednosti upto 2 bita . Ako ne znate za Bit, shvatite to kao vrijednost koja je 0 ili 1.

Dakle, za veličinu tipa = 1 bit može pohraniti samo do, 2 1 = 2, dvije vrijednosti: ili 0 ili 1. Dakle, 1-bitni sustav za slovni program može 0 protumačiti kao a / 0, a 1 kao b / 1.0.

 0 -> a ili 0 1 -> b ili 1

Isto tako, dvobitni sustav može pohraniti do 2 2 = 4 vrijednosti: (00,01,10,11), a svaka kombinacija može se predstaviti kao:

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

Za sustav bitova u njega može pohraniti najviše 2 n vrijednosti.

Brze vrste podataka

U nastavku su navedene najčešće vrste podataka koje se koriste u brzini:

Bool

  • Varijabla / konstanta deklarirana za Bool tip može pohraniti samo dvije vrijednosti trueili false.
  • Zadana vrijednost : false
  • Često se koristi kada radite s if-elseizjavama. Brzi, ako ne, članak detaljno govori o tome.

Primjer 1: logička vrsta podataka

 let result:Bool = true print(result)

Kada pokrenete program, izlaz će biti:

 pravi

Cijeli broj

  • Varijabla / konstanta deklarirana cijelog broja može pohraniti cijele brojeve i pozitivne i negativne, uključujući nulu, bez frakcijskih komponenata.
  • Zadana vrijednost : 0
  • Veličina : 32/64 bit ovisi o vrsti platforme.
  • Raspon : -2,147,483,648 do 2,147,483,647 (32-bitna platforma)
    -9223372036854775808 do 9223372036854775807 (64-bitna platforma
  • Postoje mnoge inačice tipa Integer UInt, npr Int8. Int16Itd. Najčešća je ona koju koristite Int.
  • Ako imate potrebu za određivanje veličine / tip broj varijabla / konstanta može držati, možete pohraniti ga točnije korištenja UInt, Int8, Int16itd koje ćemo istražiti u nastavku.

Primjer 2: cjeloviti tip podataka

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

Kada pokrenete program, izlaz će biti:

 100 -100 

U gornjem primjeru proglasili smo varijablu highScore tipa Int. Prvo smo mu dodijelili vrijednost 100, tako da print(highScore)na ekranu izlazi 100.

Kasnije smo promijenili vrijednost na -100 pomoću operatora dodjele highScore = -100, print(highScore)na zaslon izlazi -100.

Istražimo neke varijante Inttipa u Swiftu.

Int8

  • Varijanta tipa Integer koja može pohraniti i pozitivne i negativne male brojeve.
  • Zadana vrijednost : 0
  • Veličina : 8 bit
  • Raspon : -128 do 127

Cijeli Int8broj može u njemu pohraniti ukupno 2 8 = (256) vrijednosti. tj. može pohraniti brojeve od 0 do 255 zar ne?

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.

Primjer 10: Swift je jezik siguran za tip

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

Gornji kod stvorit će pogrešku jer smo već naveli da će varijabla playerName biti String. Dakle, u njega ne možemo pohraniti cijeli broj.

Zanimljivi članci...