Переменные и константы в Swift: объявление и синтаксис

Мы используем переменные и константы в Swift для хранения информации. Переменные — это объекты в вашем коде, такие как числа, текст, кнопки и изображения. Каждый бит информации, используемый нашим приложением, хранится в переменной или константе. Знание того, как работают переменные и константы, является первым шагом в изучении разработки под iOS.

Константы

Взгляните на это:

let number: Int = 10

Здесь объявляется константа number, которая имеет тип Int. Затем она устанавливает значение константы числу 10.

Тип Int может хранить целые числа. Десятичные числа хранятся следующим образом:

let pi: Double = 3.14159

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

Существует также тип Float, сокращение от floating-point, который хранит десятичные числа с более низкой точностью, чем Double.

На самом деле, Double имеет примерно вдвое большую точность, чем Float, поэтому он и называется Double. Float занимает меньше памяти, чем Double, но в целом использование памяти для чисел не является большой проблемой, и вы увидите, что Double используется в большинстве случаев.

После объявления константы вы не можете изменить ее данные. Например, рассмотрим следующий код:

number = 0

Этот код выдает ошибку:

Cannot assign to value: 'number' is a 'let' constant

В Xcode вы увидите ошибку в таком виде:

Константы полезны для значений, которые не будут меняться. Например, если вы моделируете самолет и вам нужно указать общее количество установленных кресел, вы можете использовать константу.

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

Переменные

Начнем с простого примера:

var age: Int = 42
print(age)
// 42

В первой строке мы объявляем переменную с именем age типа Int, а затем присваиваем ей значение 42. Во второй строке мы выводим на консоль значение переменной age с помощью функции print().

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

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

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

var variableNumber: Int = 42

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

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

variableNumber = 0
variableNumber = 1_000_000

Чтобы изменить переменную, достаточно присвоить ей новое значение.

В Swift вы можете использовать подчеркивание, чтобы сделать большие числа более читаемыми. Количество и расположение знаков подчеркивания зависит от вас.

Сейчас самое время повнимательнее рассмотреть боковую панель результатов на Playground. Когда вы введете приведенный выше код в Playground, вы увидите, что боковая панель результатов справа показывает текущее значение переменной number в каждой строке:

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

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

Синтаксис для объявления и инициализации выглядит следующим образом :

  1. var — это ключевое слово, которое указывает на объявление переменной.
  2. age — это имя переменной.
  3. : — разделяет имя и тип переменной.
  4. Int — это тип переменной.
  5. = — используется для присвоения значения переменной.
  6. 42 — это значение переменной.

Мы также можем изменить значение переменной:

var age: Int = 42
age = 999
print(age)

Сначала мы объявляем переменную age и присваиваете ей значение 42. Затем вы меняем это значение на 999, используя оператор присваивания =. Наконец, мы выводим новое значение в консоль с помощью функции print().

В Swift вы можете создавать переменные с помощью ключевого слова var и константы с помощью ключевого слова let. Разница между переменной и константой заключается в том, что переменная может быть изменена после инициализации, а константа — нет.

let name: String = "Боб"
print(name)
// Боб

Следующий код приведет к ошибке:

let name: String = "Bob"
name = "Alice"
print(name)

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

Каждая переменная и константа имеет свой тип.

Различные типы переменных могут хранить различные виды информации. Вы не можете присвоить значение одного типа переменной другому типом. И как только тип установлен, вы не можете его изменить.

let name: String = "Боб"

Константа name имеет тип String. Вы присваиваете ей значение «Боб», которое является строковым литералом. Мы не можем изменить значение переменной name на числовой литерал. Следующий код приведет к ошибке.

let name: String = 100

Значение 100 не строка, это число. Вы не можете присвоить его name, потому что эта переменная имеет тип String.

Swift — это язык программирования со строгой типизацией. Это означает, что каждая переменная должна иметь свой тип, и этот тип нельзя изменить после объявления.

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

  • Int для целых чисел, таких как 42.
  • Double для десятичных чисел, то есть чисел с дробями типа 3.1415.
  • String для текста, то есть строки символов, таких как «Алиса».
  • Bool для логических значений true или false.

В разработке для iOS вы также можете работать со многими другими типами, такими как:

  • UIButton для кнопок.
  • UIViewController для контроллеров представлений.
  • UISwitch для переключателей.
  • CLLocationManager для получения координат GPS.

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

Вывод типа

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

Вот пример явного определения типа:

var score: Int = 5

Вы также можете просто написать:

var score = 5

Swift сам выведет тип для переменной score.

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

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

Например, когда компилятор Swift распознает, что вы работаете только с положительными целыми числами, он может гипотетически изменить тип вашей переменной с Int на UInt и потенциально сэкономить часть памяти.

Вот еще один пример:

let value = 3 + 3.1415

Какой тип переменной value? Мы добавляем целое число к десятичному, то есть складываем Int и Double. Если value будет объявлен как тип Int, вы потеряете десятичное значение, поэтому Swift делает вывод, что value должен иметь тип Double.

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

Хотите выяснить тип предполагаемой переменной или константы? В редакторе кода XCode, удерживайте нажатой клавишу Alt-Option, нажимая на переменную. Вы увидите всплывающее окно с информацией о типе переменной.

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

Вы также можете использовать функцию type(of:), которая сообщит вам тип:

var score = 77
print(type(of: score))
// 77

Как правильно объявлять переменны и константы?

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

  • personAge
  • numberOfPeople
  • gradePointAverage

Часто плохое имя просто недостаточно описательно. Вот несколько примеров плохих имен:

  • a
  • temp
  • average

Главное — убедиться, что вы поймете, к чему относится переменная или константа, когда прочитаете ее позже. Не делайте ошибку, думая, что у вас непогрешимая память!

В программировании очень часто случается так, что уже через день или два вы смотрите на свой собственный код и забываете, что он делает. Облегчите себе задачу, давая переменным и константам интуитивно понятные и точные имена.
Также обратите внимание на то, как написаны приведенные выше имена. В Swift принято писать имена в верблюжьем регистре (camel case). Для переменных и констант следуйте этим правилам, чтобы правильно написать имена:

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

В Swift можно использовать даже полный набор символов Unicode. Например, вы можете объявить переменную следующим образом:

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

Читайте также:
Добавить комментарий

Ваш адрес email не будет опубликован.