Типы данных Swift

Оглавление

  1. Что мы Что такое тип данных?
  2. Размер типа данных
  3. Типы данных Swift
    — Bool
    — Integer 1) Int8 и 2) UInt
    — Float
    — Double
    - Символ
    - Строка
  4. То, что нужно запомнить

1. Что такое тип данных?

Тип данных – это тип данных (значений), которые может хранить в себе переменная или константа.

Например, в статье «Переменные и константы Swift» вы создали переменную и константу для хранения строковых данных в памяти.

Эти данные могут быть текстом/строкой («Hello»), числом (12,45) или просто битами (0 и 1). Определение типа данных обеспечивает сохранение только определенного типа данных.

Давайте рассмотрим сценарий:

Предположим, вы хотите создать игру. Поскольку в большинстве игр после завершения игры отображается рекорд и имя игрока, вам необходимо сохранить эти два данных для своей игры.

Максимальный балл — это число (например, 59), а имя игрока — строка (например, Джек). Вы можете создать две переменные или константы для хранения данных.

В Swift это можно сделать, объявив переменные и тип данных как:

var highScore:Int = 59
var playerName:String = "Jack"

Здесь мы объявили переменную highScore типа Int, в которой хранится значение 59. И переменную playerName типа String, в которой хранится значение Jack.

Однако, если вы сделаете что-то вроде этого:

var highScore:Int = "Jack"

Вы получите ошибку времени компиляции о том, что невозможно преобразовать значение типа «String» в указанный тип «Int».

Это потому, что вы объявили highScore для хранения целочисленного значения, но поместили в него строку. Эта ошибка гарантирует, что highScore может хранить только число, а не имя игрока.

Размер типа данных

Другой важной частью типа данных является его размер. Это определяет размер данных, которые могут быть сохранены в данной переменной или константе.

Размер типа измеряется в битах и ​​может хранить значения до 2 бит. Если вы не знаете о бите, подумайте о нем как о значении, равном 0 или 1.

Таким образом, для Type size = 1 бит он может хранить только до, 21 = 2, два значения: либо 0, либо 1. Таким образом, 1-битная система для буквы программа может интерпретировать 0 как a/0 и 1 как b/1.0.

0 -> a or 0 
1 -> b or 1

Аналогично, двухбитная система может хранить до 22 = 4 значений: (00,01,10,11), и каждая комбинация может быть представлена ​​как:

00 -> a or 0
01 -> b or 1
11 -> c or 2
10 -> d or 3

Для n-битной системы он может хранить максимум 2n значений.

Типы данных Swift

Наиболее распространенные типы данных, используемые в Swift, перечислены ниже:

Буль

  • Переменная/константа, объявленная типа Bool, может хранить только два значения либо true, либо false.
  • Значение по умолчанию: false
  • Он часто используется при работе с оператором if-else. В статье Swift if else подробно рассказывается об этом.

Пример: Логический тип данных

let result:Bool = true
print(result)

Когда вы запустите программу, вывод будет:

true

Целое число

  • Переменная/константа, объявленная целочисленного типа, может хранить целые числа, как положительные, так и отрицательные, включая ноль без дробных составляющих.
  • Значение по умолчанию: 0
  • Размер: 32/64 бит зависит от типа платформы.
  • Диапазон: от -2 147 483 648 до 2 147 483 647 (32-разрядная платформа)
    от -9223372036854775808 до 9223372036854775807 (64-разрядная платформа)
  • Существует много вариантов типа Integer, например. UInt, Int8, Int16 и т. д. Чаще всего вы используете Int.
  • Если у вас есть требование указать размер/тип целого числа, которое может содержать переменная/константа, вы можете сохранить его более конкретно, используя UInt, Int8, Int16 и т. д., которые мы собираемся изучить ниже.

Пример: Целочисленный тип данных

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 может хранить в себе всего 28 = (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, встроенные в функции Swift.

Пример: тип данных Max и Min Int8

print(Int8.min)
print(Int8.max)

Когда вы запустите программу, вывод будет:

-128
127

UInt

  • Вариант типа Integer, называемый UInt (целое число без знака), который может хранить только числа без знака (положительные или нулевые).
  • Не сохранять отрицательное значение
  • Значение по умолчанию: 0
  • Размер: 32/64 бит зависит от типа платформы.
  • Диапазон: от 0 до 4294967295 (32-разрядная платформа)
    от 0 до 18446744073709551615 (64-разрядная платформа)

Пример: тип данных UInt

var highScore:UInt = 100
highScore = -100//compile time error when trying to

Приведенный выше код выдаст вам ошибку времени компиляции, потому что целое число без знака может хранить только 0 или положительное значение.

Попытка сохранить отрицательное значение в целом без знака выдаст ошибку.

Плавать

  • Переменные или константы, объявленные типа float, могут хранить числа с десятичными или дробными точками.
  • Значение по умолчанию: 0,0.
  • Размер: 32-битное число с плавающей запятой.
  • Диапазон: от 1,2 * 10–38 до 3,4 * 1038 (~ 6 цифр).

Пример: тип данных с плавающей запятой

let highScore:Float = 100.232
print(highScore)

Когда вы запустите программу, вывод будет:

100.232

Двойной

  • Переменные/константы, объявленные для типа Double, также хранят числа с десятичными или дробными точками как Float, но с большими десятичными точками, чем поддерживает Float.
  • Значение по умолчанию: 0,0.
  • Размер: 64-битное число с плавающей запятой. (Поэтому переменная типа Double может хранить числа с десятичными или дробными точками, большими, чем поддерживает Float)
  • Диапазон: от 2,3*10–308 до 1,7*10308 (~15 цифр).

Пример: двойной тип данных

let highScore:Double = 100.232321212121
print(highScore)

Когда вы запустите программу, вывод будет:

100.232321212121

Характер

  • Переменные/константы, объявленные для типа Character, могут хранить односимвольный строковый литерал.
  • Вы можете включить смайлики или языки, отличные от английского, в качестве символа в Swift, используя escape-последовательность \u{n} (кодовая точка Unicode, n в шестнадцатеричном формате).

Пример: символьный тип данных

let playerName:Character = "J"
let playerNameWithUnicode:Character = "\u{134}"
print(playerName)
print(playerNameWithUnicode)

Когда вы запустите программу, вывод будет:

J
Ĵ

Нить

  • Переменные или константы, объявленные типа String, могут хранить коллекцию символов.
  • Значение по умолчанию: « » (пустая строка)
  • Это тип значения. См. раздел Значение Swift и тип ссылки.
  • Вы можете использовать цикл for-in для перебора строки. См. Цикл for-in в Swift.
  • Swift также поддерживает несколько специальных escape-последовательностей, чтобы использовать их в строке. Например,
  • \0 (нулевой символ),
  • \\ (простая обратная косая черта \),
  • \t (символ табуляции),
  • \v (вертикальная вкладка),
  • \r (возврат каретки),
  • \" (двойная кавычка),
  • \' (одинарная кавычка) и
  • \u{n} (кодовая точка Юникода, n в шестнадцатеричном формате).

Пример: строковый тип данных

let playerName = "Pratik"
let playerNameWithQuotes = "\"Pratik\""
let playerNameWithUnicode = "\u{0050}ratik"
print(playerName)
print(playerNameWithQuotes)
print(playerNameWithUnicode)

Когда вы запустите программу, вывод будет:

Pratik
“Pratik"
Pratik

В дополнение к этим типам данных в Swift есть и другие расширенные типы данных, такие как кортеж, необязательный, диапазон, класс. strong>, структура и т. д., о которых вы узнаете в последующих главах.

То, что нужно запомнить

1. Поскольку Swift — это язык вывода типов, переменные или константы могут автоматически определять тип из сохраненного значения. Таким образом, вы можете пропустить тип при создании переменной или константы. Однако вы можете подумать о написании типа для удобства чтения, но это не рекомендуется.

Пример. Введите предполагаемую переменную/константу

let playerName = “Pratik"
print(playerName)

Компилятор Swift может автоматически определить, что переменная имеет тип String из-за ее значения.

2. Swift — типобезопасный язык. Если вы определяете переменную определенного типа, вы не сможете позже изменить ее на другой тип данных.

Пример. Swift — типобезопасный язык.

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

Приведенный выше код создаст ошибку, потому что мы уже указали, что переменная playerName будет строкой. Поэтому мы не можем хранить в нем целое число.

Спасибо, что зашли так далеко. Пожалуйста, обращайтесь с любыми вопросами, комментариями или предложениями для будущих сообщений. Спасибо за прочтение!!! 📚