Swift предоставляет свои собственные версии всех основных типов C и Objective-C, в том числе Intдля целых чисел Doubleи Floatдля значений с плавающей запятой, Boolдля логических значений и Stringдля текстовых данных. Swift также предоставляет мощные версии трех основных типов коллекций ArraySetи Dictionary, как описано в Типах коллекций .

Как и C, Swift использует переменные для хранения и обращения к значениям по идентифицирующему имени. Swift также широко использует переменные, значения которых не могут быть изменены. Они известны как константы и намного более мощные, чем константы в C. Константы используются во всем Swift, чтобы сделать код более безопасным и понятным, когда вы работаете со значениями, которые не нужно изменять.

В дополнение к знакомым типам, Swift представляет расширенные типы, которых нет в Objective-C, такие как кортежи. Кортежи позволяют создавать и передавать группы значений. Вы можете использовать кортеж для возврата нескольких значений из функции в виде одного составного значения.

Swift также вводит необязательные типы, которые обрабатывают отсутствие значения. Optionals говорят либо «есть это значение, и он равен х » или «там не значение на всех». Использование опций аналогично использованию nilс указателями в Objective-C, но они работают для любого типа, а не только для классов. Опциональные опции не только безопаснее и выразительнее, чем nilуказатели в Objective-C, но и лежат в основе многих наиболее мощных функций Swift.

Swift - это типобезопасный язык, который означает, что он помогает вам понять типы значений, с которыми может работать ваш код. Если часть вашего кода требует String, тип безопасности не позволяет вам передать его Intпо ошибке. Аналогично, безопасность типов предотвращает случайную передачу необязательного Stringфрагмента кода, который требует необязательного String. Безопасность типов помогает выявлять и исправлять ошибки как можно раньше в процессе разработки.

Константы и Переменные

Константы и переменные связывают имя (например, maximumNumberOfLoginAttemptsили welcomeMessage) со значением определенного типа (например, число 10или строка "Hello"). Значение константы не может быть изменено после ее установки, тогда как в будущем для переменной можно будет установить другое значение.

Объявление констант и переменных

Константы и переменные должны быть объявлены до их использования. Вы объявляете константы с letключевым словом и переменные с varключевым словом. Вот пример того, как можно использовать константы и переменные для отслеживания количества попыток входа в систему, которые сделал пользователь:

let maximumNumberOfLoginAttempts = 10

var currentLoginAttempt = 0

Этот код можно прочитать как:

«Объявите новую вызванную константу maximumNumberOfLoginAttemptsи присвойте ей значение 10. Затем объявите новую переменную с именем currentLoginAttemptи присвойте ей начальное значение 0».

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

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

var x = 0.0, y = 0.0, z = 0.0

ЗАМЕТКА

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

Тип аннотации

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

Этот пример предоставляет аннотацию типа для переменной с именем welcomeMessage, чтобы указать, что переменная может хранить Stringзначения:

var welcomeMessage: String

Двоеточие в объявлении означает «… типа…», поэтому приведенный выше код можно прочитать как:

«Объявите переменную welcomeMessageс типом String

Фраза «типа String» означает «может хранить любое Stringзначение». Думайте об этом как о значении «типа вещи» (или «вида вещи»), который может быть сохранен.

Теперь welcomeMessageпеременная может быть установлена ​​на любое строковое значение без ошибок:

welcomeMessage = "Hello"

Вы можете определить несколько связанных переменных одного и того же типа в одной строке, разделенных запятыми, с аннотацией одного типа после окончательного имени переменной:

var red, green, blue: Double

 

ЗАМЕТКА

На практике редко нужно писать аннотации типов. Если вы предоставите начальное значение для константы или переменной в точке, которую она определила, Swift почти всегда может определить тип, который будет использоваться для этой константы или переменной, как описано в Тип безопасности и Вывод типа . В welcomeMessageприведенном выше примере начальное значение не welcomeMessageуказывается , поэтому тип переменной указывается с аннотацией типа, а не выводится из начального значения.

Именование констант и переменных

Имена констант и переменных могут содержать практически любой символ, включая символы Юникода:

let π = 3.14159

let 你好 = "你好世界"

let