У цьому посібнику ви дізнаєтесь про різні типи даних, які підтримує мова програмування Swift, і використовувати їх під час створення змінної чи константи.
Тип даних - це тип даних (значення), які змінна або константа може зберігати в них. Наприклад, у статті Swift Variables and Constants ви створили змінну та константу для зберігання рядкових даних у пам'яті.
Ці дані можуть бути текстом / рядком ("Привіт") або числом (12.45) або просто бітами (0 і 1). Визначення типу даних забезпечує збереження лише визначеного типу даних.
Давайте розглянемо сценарій:
Припустимо, ви хочете створити гру. Оскільки в більшості ігор після завершення гри відображається високий бал та ім’я гравця, вам потрібно зберегти ці два дані для вашої гри.
Найвищий бал - це число (наприклад, 59) та ім’я гравця - рядок (наприклад, Джек). Ви можете створити дві змінні або константи для зберігання даних.
У Swift це можна зробити, оголосивши змінні та тип даних як:
var highScore: Int = 59 var playerName: String = "Jack"
Тут ми оголосили змінну highScore типу, Int
яка зберігає значення 59. І змінну playerName типу, String
яка зберігає значення Jack.
Однак якщо ви зробите щось подібне:
var highScore: Int = "Джек"
Ви отримаєте помилку часу компіляції, в якій зазначено, що неможливо перетворити значення типу 'String' у вказаний тип 'Int' .
Це тому, що ви оголосили highScore для зберігання цілочисельного значення, але розмістили в ньому рядок. Ця помилка гарантує, що highScore може зберігати лише номер, а не ім'я гравця.
Розмір типу даних
Іншою важливою частиною типу даних є його розмір. Це визначає розмір даних, які можна зберігати в певній змінній або константі.
A Type в розмір вимірюється в термінах біта і може зберігати значення Шифрування до 2 -х бітів . Якщо ви не знаєте про Bit, подумайте про це як про значення, яке дорівнює 0 або 1.
Отже, для розміру Type = 1 біт він може зберігати лише до, 2 1 = 2, два значення: або 0, або 1. Отже, 1-бітна система для програми-літери може інтерпретувати 0 як a / 0, а 1 як b / 1.0.
0 -> a або 0 1 -> b або 1
Так само двобітна система може зберігати до 2 2 = 4 значень: (00,01,10,11), і кожна комбінація може бути представлена як:
00 -> a або 0 01 -> b або 1 11 -> c або 2 10 -> d або 3
Для розрядної системи вона може зберігати в ній максимум 2 n значень.
Швидкі типи даних
Нижче перераховані найпоширеніші типи даних, які використовуються в швидкому режимі:
Bool
- Змінна / константа, оголошена типом Bool, може зберігати лише два значення
true
абоfalse
. - Значення за замовчуванням : false
- Він часто використовується, коли ви працюєте з
if-else
оператором. Стрімка, якщо ще стаття детально про це висвітлює.
Приклад 1: Логічний тип даних
let result:Bool = true print(result)
Коли ви запускаєте програму, результат буде:
правда
Ціле число
- Змінна / константа, оголошена цілим числом, може зберігати цілі числа як позитивні, так і негативні, включаючи нуль, без дробових компонентів.
- Значення за замовчуванням : 0
- Розмір : 32/64 біт залежить від типу платформи.
- Діапазон : від -2 147 483 688 до 2147 483 647 (32-бітна платформа)
-9223372036854775808 до 9223372036854775807 (64-бітна платформа - Є багато варіантів Integer type.eg
UInt
,Int8
, іInt16
т.д. Найбільш поширеним з них ви використовуєте маєInt
. - Якщо у вас є вимога , щоб вказати розмір / тип цілочисельний змінна / постійна може тримати, ви можете зберігати його конкретніше , використовуючи
UInt
,Int8
, іInt16
т.д. , які ми будемо вивчати нижче.
Приклад 2: Цілочисельний тип даних
var highScore:Int = 100 print(highScore) highScore = -100 print(highScore)
Коли ви запускаєте програму, результат буде:
100 -100
У наведеному вище прикладі ми оголосили змінну highScore типу Int
. По-перше, ми призначили йому значення 100, тож print(highScore)
виводить 100 на екран.
Пізніше ми змінили значення на -100, використовуючи оператор присвоєння, як результат highScore = -100
, print(highScore)
виводить -100 на екран.
Давайте розберемо деякі варіанти Int
типу в Swift.
Int8
- Варіант типу Integer, який може зберігати як додатні, так і від’ємні малі числа.
- Значення за замовчуванням : 0
- Розмір : 8 біт
- Діапазон : від -128 до 127
Int8
Ціле число може зберігати в цілому 2 8 = (256) значення в ньому. тобто він може зберігати числа від 0 до 255, правда?
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,