Операторы - это символы, которые заставляют ваш код работать.
Вы будете использовать их для выполнения таких действий, как проверка, изменение или объединение значений. Существуют операторы для работы с числами и сравнения их, операторы для проверки истинных (true) и ложных (false) значений, операторы, которые помогают упростить условные назначения, и многое другое.
В этом уроке вы узнаете о некоторых операторах языка Swift, включая базовые математические операторы для сложения (+), вычитания (–), умножения (*) и деления (/).
Чему Вы Научитесь
- Как выполнять основные математические операции
- Как сложить два числа разных типов вместе
- Как найти остаток от операции деления
Терминология
Связанные ресурсы
Руководство по языку программирования Swift: Базовые операторы
В программировании оператор заставляет ваш код работать, выполняя действие со значениями слева и справа от него. Когда вы читаете код и видите незнакомый символ, скорее всего, это оператор.
В этом уроке рассматриваются наиболее распространенные операторы.
Присвоение значения
Используйте оператор = для присвоения значения. Имени слева присваивается значение справа.
Этот код объявляет, что “Люк” - ваш любимый человек:
let favoritePerson = “Luke”
Оператор = также используется для изменения или переназначения значения.
Следующий код объявляет переменную shoeSize и присваивает ей значение 8. Затем это значение изменяется на 9:
var shoeSize = 8
shoeSize = 9 // Переназначает размер обуви на 9
Базовая арифметика
Вы можете использовать операторы +, -, * и / для выполнения основных математических операций.
var opponentScore = 3 * 8
// счёт соперника имеет значение 24
var myScore = 100 / 4
// мой счёт имеет значение 25
Вы можете использовать операторы для выполнения арифметических операций, используя значения других переменных:
var totalScore = opponentScore + myScore // общий балл имеет значение 49
Оператор может даже ссылаться на текущую переменную, обновляя ее до нового значения:
myScore = myScore + 3 // Обновляет мой счет до текущего значения плюс 3
Для точности с десятичной запятой вы можете выполнить те же операции со значениями Double:
let totalDistance = 3.9
var distanceTraveled = 1.2
var remainingDistance = totalDistance - distanceTraveled // оставшееся расстояние имеет значение 2,7
Когда вы используете оператор деления (/) для значений Int, результатом будет значение Int, округленное до ближайшего целого числа, поскольку тип Int поддерживает целые числа:
let x = 51
let y = 4
let z = x / y // z присвоено значение 12
Если вы явно объявите константы или переменные как значения Double, результаты будут включать десятичные значения.
let x: Double = 51
let y: Double = 4
let z = x / y // z присвоено значение 12.75
Обязательно используйте значения Double всякий раз, когда ваш код требует точности с десятичной запятой.
Составное присваивание
Более ранний фрагмент кода обновил переменную, добавив к ней число:
var myScore = 10
myScore = myScore + 3 // Обновляет MyScore до текущего значения плюс 3
Но есть лучший способ изменить значение, которое уже было присвоено. Вы можете использовать составной оператор присваивания, который добавляет оператор = после арифметического оператора.
myScore += 3 // Прибавляет 3 к MyScore
myScore -= 5 // Вычитает 5 из MyScore
myScore *= 2 // Умножает MyScore на 2
myScore /= 2 // Делит MyScore на 2
Составные операторы присваивания помогают вам писать более чистый и лаконичный код.
Оператор остатка от деления
Используйте оператор остатка от деления (%), чтобы быстро вычислить остаток от деления двух значений Int.
let dividend = 10
let divisor = 3
let quotient = dividend / divisor // частное имеет значение 3
let remainder = dividend % divisor // остаток имеет значение 1
Вы можете вычислить остаток как dividend - (quotient * divisor), но оператор остатка проще, быстрее, чище и лаконичнее.
Порядок операций
Математические операции всегда выполняются в определенном порядке. Умножение и деление имеют приоритет над сложением и вычитанием, а круглые скобки имеют приоритет над всеми четырьмя.
Рассмотрим следующие переменные.
var x = 2
var y = 3
var z = 5
Затем рассмотрим следующие расчеты:
x + y * z // Равно 17
(x + y) * z // Равно 25
В первой строке выше умножение имеет приоритет над сложением. Во второй строке скобки выполняют свою работу первыми.
Оператор остатка имеет тот же приоритет, что и умножение и деление:
y + z % x // Равно 4
(y + z) % x // Равно 0
Преобразование числового типа
Как вы уже поняли, вы не можете смешивать и сопоставлять типы чисел при выполнении математических операций.
Например, следующее приведет к ошибке компилятора, поскольку x - это значение Int, а y - значение Double:
let x = 3
let y = 0.1415927
let pi = x + y
Чтобы код мог завершиться, вы можете создать новое значение Double из x, добавив префикс типа, в который вы хотите его преобразовать:
let x = 3
let y = 0.1415927
let pi = Double(x) + y
В пересмотренном коде Double(x) создает новое значение Double из значения Int x, позволяя компилятору добавлять его к y и присваивать результат pi.
Лабораторная работа
Откройте и завершите упражнения в Lab—Operators.playground.
Подключение к дизайну
В Рабочей тетради по разработке приложений подумайте о типах вычислений, которые могут быть связаны с проблемой, с которой сталкиваются ваши пользователи. Какие математические вычисления может потребоваться выполнить вашему приложению? Нужно ли пользователю знать общее, процентное или другое вычисленное значение? Даже если у вас еще нет полного плана, добавьте свои идеи в комментарии к разделам Определения, которые вы завершили, или в новый пустой слайд в конце документа.
В примере приложения Go Green для рабочей книги пользователь может захотеть узнать процент переработки в общем объеме мусора, который может быть рассчитан приложением с помощью таких операций, как деление и сложение.
Отрывок из книги
Develop in Swift Fundamentals
Apple Education
https://books.apple.com/ru/book/develop-in-swift-fundamentals/id1581182804