Швидкі типи даних (із прикладами)

У цьому посібнику ви дізнаєтесь про різні типи даних, які підтримує мова програмування 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,
    • (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: Swift - це безпечна для друку мова

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

Наведений вище код створить помилку, оскільки ми вже вказали, що змінна playerName буде String. Тому ми не можемо зберегти в ньому ціле число.

Цікаві статті...