В этом руководстве вы узнаете о различных типах данных, которые поддерживает язык программирования Swift, и будете использовать их при создании переменной или константы.
Тип данных - это тип данных (значения), которые могут храниться в переменной или константе. Например, в статье «Переменные и константы Swift» вы создали переменную и константу для хранения строковых данных в памяти.
Эти данные могут быть текстом / строкой ("Hello"), числом (12,45) или просто битами (0 и 1). Определение типа данных гарантирует, что будет сохранен только определенный тип данных.
Давайте посмотрим на сценарий:
Предположим, вы хотите создать игру. Поскольку в большинстве игр после завершения игры отображаются рекорды и имя игрока, вам необходимо сохранить эти два данных для своей игры.
Рекорд - это число (например, 59), а имя игрока - строка (например, Джек). Вы можете создать две переменные или константы для хранения данных.
В Swift это можно сделать, объявив переменные и тип данных как:
var highScore: Int = 59 var playerName: String = "Джек"
Здесь мы объявили переменную типа highScore, в Int
которой хранится значение 59. И переменную playerName типа, в String
которой хранится значение Jack.
Однако, если вы сделаете что-то вроде этого:
var highScore: Int = "Джек"
Вы получите ошибку времени компиляции, в которой говорится, что невозможно преобразовать значение типа String в указанный тип Int .
Это потому, что вы объявили highScore для хранения целочисленного значения, но поместили в него строку. Эта ошибка гарантирует, что highScore может хранить только число, а не имя игрока.
Размер типа данных
Другой важной частью типа данных является его размер. Это определяет размер данных, которые могут храниться в данной переменной или константе.
A Type в размер измеряется в терминах бита и может хранить значения Шифрование до 2 -х битов . Если вы не знаете о Bit, подумайте о нем как о значении 0 или 1.
Итак, для Type size = 1 бит он может хранить только до 2 1 = 2, два значения: либо 0, либо 1. Таким образом, 1-битная система для буквенной программы может интерпретировать 0 как / 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 значений.
Типы данных Swift
Наиболее распространенные типы данных, используемые в swift, перечислены ниже:
Bool
- Переменная / константа, объявленная типа Bool, может хранить только два значения либо,
true
либоfalse
. - Значение по умолчанию : false
- Часто используется при работе с
if-else
оператором. Об этом подробно рассказывается в статье Swift if else.
Пример 1: логический тип данных
let result:Bool = true print(result)
Когда вы запустите программу, вывод будет:
правда
Целое число
- Переменная / константа, объявленная целочисленного типа, может хранить как положительные, так и отрицательные целые числа, включая ноль, без дробных компонентов.
- Значение по умолчанию : 0
- Размер : 32/64 бит зависит от типа платформы.
- Диапазон : от -2 147 483 648 до 2 147 483 647 (32-разрядная платформа) от
-9223372036854775808 до 9223372036854775807 (64-разрядная платформа - Существует много вариантов типа Integer, например
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
- Вариант целочисленного типа, который может хранить как положительные, так и отрицательные маленькие числа.
- Значение по умолчанию : 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,