Выполняя программирование на любом языке программирования, вы должны использовать различные типы переменных для хранения информации. Переменные — это не что иное, как зарезервированные области памяти для хранения значений. Это означает, что когда вы создаете переменную, вы резервируете некоторое пространство в памяти.
Вам может потребоваться хранить информацию различных типов данных, таких как строка, символ, широкий символ, целое число, число с плавающей запятой, логическое значение и т. Д. На основе типа данных переменной операционная система выделяет память и решает, что можно сохранить в зарезервированном объем памяти.
Встроенные типы данных
Swift 4 предлагает программисту богатый ассортимент как встроенных, так и определяемых пользователем типов данных. Следующие типы базовых типов данных чаще всего используются при объявлении переменных:
-
Int или UInt — используется для целых чисел. Более конкретно, вы можете использовать Int32, Int64 для определения 32- или 64-разрядного целого числа со знаком, тогда как UInt32 или UInt64 для определения 32- или 64-разрядных целочисленных переменных без знака. Например, 42 и -23.
-
Число с плавающей запятой — используется для представления 32-разрядного числа с плавающей запятой и чисел с меньшими десятичными точками. Например, 3,14159, 0,1 и -273,158.
-
Double — используется для представления 64-битного числа с плавающей запятой и используется, когда значения с плавающей запятой должны быть очень большими. Например, 3,14159, 0,1 и -273,158.
-
Bool — Это представляет логическое значение, которое является или истиной или ложью.
-
Строка — это упорядоченная коллекция символов. Например, «Привет, мир!»
-
Символ — это односимвольный строковый литерал. Например, «С»
-
Необязательно — представляет переменную, которая может содержать либо значение, либо отсутствие значения.
-
Кортежи — это используется для группировки нескольких значений в одно составное значение.
Int или UInt — используется для целых чисел. Более конкретно, вы можете использовать Int32, Int64 для определения 32- или 64-разрядного целого числа со знаком, тогда как UInt32 или UInt64 для определения 32- или 64-разрядных целочисленных переменных без знака. Например, 42 и -23.
Число с плавающей запятой — используется для представления 32-разрядного числа с плавающей запятой и чисел с меньшими десятичными точками. Например, 3,14159, 0,1 и -273,158.
Double — используется для представления 64-битного числа с плавающей запятой и используется, когда значения с плавающей запятой должны быть очень большими. Например, 3,14159, 0,1 и -273,158.
Bool — Это представляет логическое значение, которое является или истиной или ложью.
Строка — это упорядоченная коллекция символов. Например, «Привет, мир!»
Символ — это односимвольный строковый литерал. Например, «С»
Необязательно — представляет переменную, которая может содержать либо значение, либо отсутствие значения.
Кортежи — это используется для группировки нескольких значений в одно составное значение.
Мы перечислили здесь несколько важных моментов, связанных с целочисленными типами —
-
На 32-битной платформе Int имеет тот же размер, что и Int32.
-
На 64-битной платформе Int имеет тот же размер, что и Int64.
-
На 32-битной платформе UInt имеет тот же размер, что и UInt32.
-
На 64-битной платформе UInt имеет тот же размер, что и UInt64.
-
Int8, Int16, Int32, Int64 могут использоваться для представления 8-битных, 16-битных, 32-битных и 64-битных форм целого числа со знаком.
-
UInt8, UInt16, UInt32 и UInt64 могут использоваться для представления 8-битных, 16-битных, 32-битных и 64-битных форм целых чисел без знака.
На 32-битной платформе Int имеет тот же размер, что и Int32.
На 64-битной платформе Int имеет тот же размер, что и Int64.
На 32-битной платформе UInt имеет тот же размер, что и UInt32.
На 64-битной платформе UInt имеет тот же размер, что и UInt64.
Int8, Int16, Int32, Int64 могут использоваться для представления 8-битных, 16-битных, 32-битных и 64-битных форм целого числа со знаком.
UInt8, UInt16, UInt32 и UInt64 могут использоваться для представления 8-битных, 16-битных, 32-битных и 64-битных форм целых чисел без знака.
Связанные значения
В следующей таблице показан тип переменной, сколько памяти требуется для хранения значения в памяти, а также какое максимальное и минимальное значение можно сохранить в переменных такого типа.
Тип | Типичная ширина бита | Типичный диапазон |
---|---|---|
iNT8 | 1 байт | От -127 до 127 |
uint8 | 1 байт | От 0 до 255 |
Int32 | 4 байта | От -2147483648 до 2147483647 |
UInt32 | 4 байта | От 0 до 4294967295 |
Int64 | 8bytes | От -9223372036854775808 до 9223372036854775807 |
UInt64 | 8bytes | От 0 до 18446744073709551615 |
терка | 4 байта | 1,2E-38 до 3,4E + 38 (~ 6 цифр) |
двойной | 8bytes | 2,3E-308 до 1,7E + 308 (~ 15 цифр) |
Введите псевдонимы
Вы можете создать новое имя для существующего типа, используя typealias . Вот простой синтаксис для определения нового типа с помощью typealias —
typealias newname = type
Например, следующая строка указывает компилятору, что Feet — это другое имя для Int —
typealias Feet = Int
Теперь следующее объявление является абсолютно допустимым и создает целочисленную переменную с именем distance —
typealias Feet = Int var distance: Feet = 100 print(distance)
Когда мы запускаем вышеуказанную программу, используя площадку, мы получаем следующий результат.
100
Тип безопасности
Swift 4 — это типобезопасный язык, который означает, что если часть вашего кода ожидает String, вы не можете передать ему Int по ошибке.
Поскольку Swift 4 безопасен для типов, он выполняет проверки типов при компиляции кода и помечает любые несовпадающие типы как ошибки.
var varA = 42 varA = "This is hello" print(varA)
Когда мы компилируем вышеуказанную программу, она выдает следующую ошибку времени компиляции.
main.swift:2:8: error: cannot assign value of type 'String' to type 'Int' varA = "This is hello"
Вывод типа
Вывод типа позволяет компилятору автоматически определять тип определенного выражения при компиляции вашего кода, просто проверяя предоставленные вами значения. Swift 4 использует вывод типа для разработки соответствующего типа следующим образом.
// varA is inferred to be of type Int var varA = 42 print(varA) // varB is inferred to be of type Double var varB = 3.14159 print(varB) // varC is also inferred to be of type Double var varC = 3 + 0.14159 print(varC)
Когда мы запускаем вышеуказанную программу, используя площадку, мы получаем следующий результат —