Брзи типови података (са примерима)

У овом упутству ћете научити о различитим типовима података које програмски језик Свифт подржава и користити их док правите променљиву или константу.

Тип података је тип података (вредности) који променљива или константа могу да чувају у њему. На пример, у чланку Свифт променљиве и константе створили сте променљиву и константу за чување података низа у меморији.

Ови подаци могу бити текст / низ („Здраво“) или број (12.45) или само битови (0 и 1). Дефинисање типа података осигурава чување само дефинисаног типа података.

Погледајмо сценарио:

Претпоставимо да желите да направите игру. Будући да већина игара приказује високи резултат и име играча након завршетка игре, морате да сачувате ова два података за своју игру.

Најбољи резултат је број (нпр. 59) и име играча низ (нпр. Јацк). Можете да направите две променљиве или константе за чување података.

У Свифту се то може учинити декларисањем променљивих и типа података као:

 вар хигхСцоре: Инт = 59 вар плаиерНаме: Стринг = "Јацк"

Овде смо прогласили хигхСцоре променљиву типа Intкоја чува вредност 59. И променљиву плаиерНаме типа Stringкоја чува вредност Јацк.

Међутим, ако урадите нешто слично:

 вар хигхСцоре: Инт = "Џек"

Добићете грешку времена компајлирања наводећи да не може претворити вредност типа 'Стринг' у назначени тип 'Инт' .

То је зато што сте прогласили хигхСцоре за чување целобројне вредности, али сте у њега поставили низ. Ова грешка осигурава да хигхСцоре може сачувати само број, а не и име играча.

Величина типа података

Други важан део типа података је његова величина. Ово одређује величину података који се могу чувати у датој променљивој или константи.

А тип је величина се мери у односу на мало и може да складишти вредности Упто 2 бита . Ако не знате за Бит, схватите то као вредност која је 0 или 1.

Дакле, за тип сизе = 1 бит, може да чува само Упто, 2 1 = 2, две вредности: 0 или 1. Дакле, 1 битни систем за програм слова може тумачити 0 као / 0 и 1 као б / 1.0.

 0 -> а или 0 1 -> б или 1

Исто тако, двобитни систем може похранити до 2 2 = 4 вредности: (00,01,10,11) и свака комбинација може бити представљена као:

 00 -> а или 0 01 -> б или 1 11 -> ц или 2 10 -> д или 3

За систем битова у њега може да се ускладишти највише 2 н вредности.

Брзи типови података

У наставку су наведени најчешћи типови података који се користе у брзини:

Боол

  • Променљива / константа декулисана типа Боол може сачувати само две вредности trueили false.
  • Подразумевана вредност : фалсе
  • Често се користи када радите са if-elseизјавом. Свифт иф елсе чланак детаљно говори о томе.

Пример 1: логички тип података

 let result:Bool = true print(result)

Када покренете програм, излаз ће бити:

 истина

Цео број

  • Променљива / константа декларисана целобројним типом може да чува читаве бројеве и позитивне и негативне, укључујући нулу, без фракционих компоненти.
  • Подразумевана вредност : 0
  • Величина : 32/64 бит зависи од типа платформе.
  • Распон : -2,147,483,648 до 2,147,483,647 (32-битна платформа)
    -9223372036854775808 до 9223372036854775807 (64-битна платформа
  • Постоје многе варијанте Интегер типе.ег UInt, Int8, Int16итд најчешћи користите је Int.
  • Ако имате потребу да одреди величину / тип број променљива / константа може да можете похранити га прецизније користи UInt, Int8, Int16итд који ћемо истраживати испод.

Пример 2: Целобројни тип података

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

Када покренете програм, излаз ће бити:

 100 -100 

У горњем примеру прогласили смо променљиву хигхСцоре типа Int. Прво смо му доделили вредност 100, тако print(highScore)да на екрану излази 100.

Касније смо променили вредност на -100 користећи оператор додељивања, highScore = -100тако да print(highScore)на екран излази -100.

Истражимо неке варијанте Intтипа у Свифту.

Инт8

  • Варијанта типа Интегер која може да чува и позитивне и негативне мале бројеве.
  • Подразумевана вредност : 0
  • Величина : 8 бит
  • Опсег : -128 до 127

Int8Цео број може похранити свеукупно 2 8 = (256) вредности у њему. тј. може чувати бројеве од 0 до 255, зар не?

Да сте у праву. Али с обзиром да Int8укључује и позитивне и негативне бројеве, можемо сачувати бројеве од -128 до 127, укључујући 0, што укупно износи 256 вредности или бројева.

 var highScore:Int8 = -128//ok highScore = 127 //ok highScore = 128 // error here highScore = -129 //error here 

Такође можете да сазнате највишу и најнижу вредност коју тип може да ускладишти користећи .minи .maxуграђене Свифт функције.

Пример 3: Мак и Мин Инт8 тип података

 print(Int8.min) print(Int8.max) 

Када покренете програм, излаз ће бити:

 -128 127

УИнт

  • Варијанта типа Интегер названа УИнт (Непотписани цели број) која може да складишти само непотписане бројеве (позитивне или нуле).
  • Подразумевана вредност : 0
  • Величина : 32/64 бит зависи од типа платформе.
  • Опсег : 0 до 4294967295 (32-битна платформа)
    0 до 18446744073709551615 (64-битна платформа)

Пример 4: УИнт тип података

 var highScore:UInt = 100 highScore = -100//compile time error when trying to 

Горњи код ће вам дати грешку у времену компајлирања, јер непотписани цели број може да сачува само 0 или позитивну вредност. Покушај да негативну вредност сачувате у непотписаном целом броју створиће вам грешку.

Пловак

  • Променљиве или константе декларисане са флоат типом могу да чувају број са децималним тачкама или разломцима.
  • Подразумевана вредност : 0,0
  • Величина : 32-битни број са покретном зарезом.
  • Опсег : 1,2 * 10 -38 до 3,4 * 10 38 (~ 6 цифара)

Пример 5: Флоат тип података

 let highScore:Float = 100.232 print(highScore) 

Када покренете програм, излаз ће бити:

 100.232

Доубле

  • Променљиве / константе декларисане типа Доубле такође чувају број са децималним тачкама или разломцима као Флоат, али веће децималне тачке него што Флоат подржава.
  • Подразумевана вредност : 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.

Пример 10: Свифт је језик сигуран за тип

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

Горњи код ће створити грешку јер смо већ навели да ће променљива плаиерНаме бити Стринг. Тако да у њега не можемо сместити целобројни број.

Занимљиви Чланци...