Видеокурсы по изучению языка программирования Swift. Подробнее

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

Если вы нашли опечатку в тексте, выделите ее и нажмите CTRL + ENTER.

Константы и переменные связывают имя (например, 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 указывается с помощью обозначения типа вместо того, чтобы вывести из начального значения.

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

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

let π = 3.14159
let 你好 = "你好世界"
let 🐶🐮 = "dogcow"

Имена констант и переменных не могут содержать математических символов, стрелок, Unicode-символов из области приватных символов (или недопустимых символов), или символов для рисования линий и прямоугольников. Также они не могут начинаться с цифры, хотя цифры могут быть использованы в любом другом месте внутри имени.

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

Заметка

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

Вы можете поменять значение существующей переменной на другое значение совместимого типа. В этом примере значение friendlyWelcome изменяется с "Hello!" на "Bonjour!":

var friendlyWelcome = "Hello!"
friendlyWelcome = "Bonjour!"
// friendlyWelcome теперь "Bonjour!"

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

let languageName = "Swift"
languageName = "Swift++"
// это ошибка компиляции - languageName не может быть изменен

Вывод на экран констант и переменных

Вы можете напечатать на экране текущее значение константы или переменной с помощью функции print(_:separator:terminator:):

print(friendlyWelcome)
// напечатает "Bonjour!"

Функция print(_:separator:terminator:) - глобальная функция, которая печатает на экран одно или более значений в надлежащем виде. Функция print(_:separator:terminator:) выводит на экран переданные в нее значения в консоли Xcode. Параметры separator и terminator имеют дефолтные значения, поэтому могут быть пропущены при вызове функции. По умолчанию эта функция заканчивает строку при выводе сообщения, добавляя символ конца строки. Если вы не хотите прерывать строку, то в параметр terminator вам нужно передать пустую строку- например, print(someValue, terminator: ""). Более подробная информация о параметрах с дефолтными значениями находится в Дефолтных значениях параметров.

Swift использует интерполяцию строки для того, чтобы включить имя константы или переменной, в качестве плейсхолдера (того, что держит место) в более длинную строку и для того, чтобы подсказать Swift заменить ее текущим значением константы или переменной. Поместите имя константы или переменной в круглые скобки и экранируйте его при помощи обратного слеша, который находится непосредственно перед открывающей круглой скобкой:

print("The current value of friendlyWelcome is \(friendlyWelcome)")
// Выведет "The current value of friendlyWelcome is Bonjour!"

Функция print печатает любое String значение, которое вы ему передадите:

print("This is a string")
// Выведет "This is a string"

Заметка

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

Swift: 
3.0