English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
В этом руководстве вы узнаете о различных типах данных, поддерживаемых языком программирования Swift, и будете использовать их при создании переменных или констант.
Тип данных - это тип данных (значение), который может храниться в переменной или константе. Например, в статьеПеременные и константы SwiftВы создали переменную и константу для хранения строковых данных в памяти.
Данные могут быть текстом/строкой («Hello») или числом (12.45), также могут быть битами (0&1). Определение типа данных гарантирует, что можно хранить только определенный тип данных.
Давайте рассмотрим сцену:
Предположим, что вы хотите создать игру. Поскольку большинство игр после завершения показывают высокий балл и имя игрока, вам нужно хранить эти два данных для игры.
Высокий балл (highScore) - это число (например, 59), имя игрока (playerName) - это строка (например, Jack). Вы можете создать две переменные или константы для хранения данных.
В Swift это можно сделать, объявив переменную и тип данных:
var highScore: Int = 59 var playerName: String = "Jack"
Здесь мы объявили переменную HighScore типа Int, которая хранит значение 59. И переменную playerName типа String, которая хранит значение Jack.
Но если вы выполните следующие действия:
var highScore: Int = "Jack"
Вы получите ошибку компиляции, которая выбросит Невозможно преобразовать значение типа 'String' в указанный тип 'Int'.
Это потому, что вы объявили highScore для хранения целого числа, но поместили в него строку. Эта ошибка гарантирует, что highScore может хранить только число и не может хранить имя игрока.
Другой важной частью типа данных является его размер. Это определяет размер данных, который можно хранить в переменной или константе.
Размер типа измеряется в битах, и он может хранить 2битов. Если вы знаете Bit (бит), можно представить его как значение 0 или 1.
Таким образом, дляТип size = 1 bit, то он может хранить 2 1 Это равно 2 значениям: 0 или 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 значенийЗначение
Ниже перечислены наиболее часто используемые типы данных в 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
В примере выше мы объявили переменную типа Int под именем highScore. Сначала мы присвоили ей значение 100, поэтому print (highScore) выводит 100 на экран.
Позднее мы использовали оператор присваивания highScore = -100, чтобы изменить значение на -100, поэтому на экране выводится (highScore) output-100.
Давайте рассмотрим некоторые варианты типа Int в Swift.
Вариант целого типа, который может хранить положительные и отрицательные числа.
Значение по умолчанию0
размер8 бит
диапазонот -128 до 127
Целое число Int8 может хранить в общей сложности 2 8 =(256) значений. Это означает, что он может хранить числа от 0 до 255.
Но так как Int8 включает положительные и отрицательные числа, мы можем хранить числа от -128 до 127, включая 0, что в сумме составляет 256 значений или чисел.
var highScore:Int8 = -128 // правильно highScore = 127 // правильно highScore = 128 // ошибка highScore = -129 // ошибка
Вы также можете использовать Функции Swift Внутренние .min и .max показывают максимальное и минимальное значение типа, который может хранить.
Пример 3: максимальное и минимальное значение типа Int8
print(Int8.min) print(Int8.max)
При запуске программы вывод будет следующим:
-128 127
Вариант целого типа, называемый UInt (беззнаковое целое число), может хранить только беззнаковые числа (положительные или ноль).
Значение по умолчанию0
размер32/64-битное, зависит от типа платформы.
диапазонот 0 до 4294967295 (32-битная платформа)
от 0 до 18446744073709551615 (64-битная платформа)
Пример 4: тип данных UInt
var highScore:UInt = 100 highScore = -100 // ошибка в время компиляции
Указанный код вызовет ошибку компиляции, так как беззнаковые целые числа могут хранить только 0 или положительные значения. Попытка хранить отрицательное значение в беззнаковом целом числе вызовет ошибку.
Переменные или константы типа Float могут хранить числа с десятичной точкой или десятичной точкой.
Значение по умолчанию0.0
размер32-битное浮понтное число.
диапазон1.2 * 10 -38до 3.4 * 10 38(около 6 знаков после запятой)
let highScore:Float = 100.232 print(highScore)
При запуске программы вывод будет следующим:
100.232
Переменные и константы типа Double также хранят числа с десятичной точкой или десятичной точкой, превышающей поддержку Float, но с большей точностью.
Значение по умолчанию0.0
размер64-битное浮понтное число.(Таким образом, переменные типа Double могут хранить числа с десятичной точкой или десятичной точкой, превышающей поддержку Float)
диапазон2.3×10 -308〜1.7 * 10 308(до 15 знаков)
let highScore:Double = 100.232321212121 print(highScore)
При запуске программы вывод будет следующим:
100.232321212121
Переменная или константа, объявленная типом Character, может хранить литерал строки с одним символом.
Вы можете использовать последовательность escape \u{n} (Unicode символ, n представлено шестнадцатеричным числом) в Swift для использования emoji или символов других языков, кроме английского.
let playerName:Character = "J" let playerNameWithUnicode:Character = "\u{134}" print(playerName) print(playerNameWithUnicode)
При запуске программы вывод будет следующим:
J Ĵ
Переменная или константа, объявленная типом String, может хранить набор символов.
Значение по умолчанию:""(пустая строка)
Это тип значения.
Вы можете использовать цикл for-in для遍ения по строке.смотритеЦикл for-in в Swift.
Swift также поддерживает некоторые особые последовательности escape для использования в строках. Например,
\0 (пробельный символ),
\\ (обычный обратный слеш\),
\t (табулятор),
\v (вертикальный табулятор),
\r (возврат каретки),
\" (двойная кавычка),
\' (одинарная кавычка), и
\u{n} (строка Unicode, n представлено шестнадцатеричным числом).
let playerName = "Jack" let playerNameWithQuotes = "\"Jack\"" let playerNameWithUnicode = "\u{134}ack" print(playerName) print(playerNameWithQuotes) print(playerNameWithUnicode)
При запуске программы вывод будет следующим:
Jack "Jack" Ĵack
смотритеSwift символы и строки,чтобы получить больше информации о声明, операциях и примерах с символами и строками.
Кроме этого типа данных, в Swift есть и другие продвинутые типы данных, такие как tuple,optional,range,class,structure более подробно вы узнаете в后面的章节中。
1.Поскольку Swift является языком с типовой инференцией, тип переменной или константы может быть автоматически определен из хранящегося значения. Таким образом, вы можете пропустить тип при создании переменной или константы. Однако, вы можете рассмотреть возможность написания типов для улучшения читаемости, но это не рекомендуется.
Пример 9: Переменные/константы с типовым выводом
let playerName = "Jack" print(playerName)
Компилятор Swift может автоматически определить тип переменной как String на основе его значения.
2. Swift - это типо-безопасный язык. Если переменную определить как определенный тип, то впоследствии не можно использовать другие типы данных для ее изменения.
Пример 10: Swift - это типо-безопасный язык
let playerName: String playerName = 55 //ошибка в время компиляции
Ниже приведен код, который вызовет ошибку, потому что мы уже указали, что переменная playerName будет String. Поэтому мы не можем хранить в ней целое число.