У овом упутству ћете научити о различитим типовима података које програмски језик Свифт подржава и користити их док правите променљиву или константу.
Тип података је тип података (вредности) који променљива или константа могу да чувају у њему. На пример, у чланку Свифт променљиве и константе створили сте променљиву и константу за чување података низа у меморији.
Ови подаци могу бити текст / низ („Здраво“) или број (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,