Язык Swift часть 6. Простые операторы.
Что такое операторы в языке Swift?
Итак мы уже изучили базовые понятия языка Swift, узнали что такое переменные, константы. А для чего они нужны? Что с ними можно делать? Так вот для взаимодействия с переменными нужны операторы. Каждый из нас знаком со школы с базовыми операторами. Они используются повсеместно в алгебре, геометрии, физике и прочих науках. Без операторов нельзя полноценно говорить о данных и значениях.
Виды операторов
Операторы делятся на 3 категории:
- Унарные
- Бинарные
- Тернарные
Унарные оперируют одним значением. Например операторы изменения знака, или оператор инкремента:
// Code from REPL
1> var a = 5
a: Int = 5
2> var b = -a
b: Int = -5
3> var b = +a
b: Int = 5
4> var b += 1
b: Int = 6
Бинарные оперируют двумя значениями. Например:
c = a + b
d = b - a
Тернарные соответственно тремя. Swift имеет только один тернарный оператор, тернарный условный оператор - об этом чуть позже.
В swift представлены следующие виды операторов:
- Арифметические операторы
- Логические операторы
- Операторы присваивания
- Операторы сравнения
- Другие
Арифметические операторы
Оператор | Символ | Описание | Пример |
---|---|---|---|
Сложение | + | Складывает 2 операнда | a + b |
Вычитание | - | Вычитает из первого операнда второй | a - b |
Умножение | * | Умножает первый операнд на второй | a * b |
Деление | / | Делит первый операнд на второй без остатка | a / b |
Остаток от деления | % | Делит первый операнд на второй и возвращает остаток | a % b |
К самым простым операторам относятся символы сложения +, вычитания -, умножения *, деления /, равенства =.
var a = 1
var b = 2
var c = a + b // 3
b = c - a // 2
print(c*b) // 6
Деление по модулю записывается с использованием символа процента %. Это означает «разделить левое число на правое и вернуть остаток». Итак, 9%3 возвращает 0, потому что 9 делится на 3 без остатка, тогда как 10%3 возвращает 1, потому что 10 делится на 3 трижды, с остатком 1.
5> 25 % 6
$R1: Int = 1
6> 9 % 6
$R2: Int = 3
Логические операторы
Оператор | Символ | Описание | Пример |
---|---|---|---|
Логическое И | && | Возвращает true если оба выражения true, иначе false | a && b |
Логическое ИЛИ | || | Возвращает false если оба выражения false, начае true | a || b |
Логическое НЕ | ! | Переворачивает значение | !a |
print(true && true) //true
print(true && false) //false
print(true || false) //true
print(false || false) //false
print(!false) //true
Оператор отрицания "НЕ" ! . Это просто восклицательный знак. Этот оператор заставляет значение обрести противоположный смысл существующему. Например:
var isEnable = true
isEnable // true
!isEnable // false
Получится истина, истина, ложь - с последним значением так, потому что оно перевернуло предыдущую истину.
Вы также можете использовать ! с = сделать != или "не равно". Например:
var name = "Peter"
name == "Peter" // true
name != "Peter" // false
Операторы присваивания
Оператор | Символ | Описание | Пример |
---|---|---|---|
Присваивание | = | Присвоить значение правого операнда левому | a = b |
Сложение с присваением | += | Сложить два операнда затем присвоить значение результата первому | a += b |
Вычитание с присваением | -= | Вычесть из второго операнда первый затем присвоить значение результата первому | a -= b |
Умножение с присваением | *= | Усножить два операнда затем присвоить значение результата первому | a *= b |
Деление с присваением | /= | Разделить второй операнд на первый затем присвоить значение результата первому | a /= b |
Модуль с присваением | %= | Разделить второй операнд на первый затем присвоить значение остатка первому | a %= b |
Знак равенства = в языке Swift означает не равенство значений(операндов), а присвоение значения. То есть если var a = 4 означает, что переменной a присваивается значение 4. За равенство(эквивалентность) отвечает другой оператор ==.
var b = 10
b += 10
b -= 10
Что означает сначала присвоить переменной b значение 10, затем взять текущее значение пременной b, прибавить к ней 10, затем записать новое значение обратно в переменную b. -= работает наоборот - сначала отнять 10, затем присвоить новое значение переменной.
Операторы сравнения
Оператор | Символ | Описание | Пример |
---|---|---|---|
Эквивалентность | == | true если оба операнда эквиваленты, иначе false | a == b |
Не эквивалентность | != | false если оба операнда эквиваленты, иначе true | a != b |
Больше чем | > | true если левый операнд больше чем правый, иначе false | a > b |
Меньше чем | < | false если левый операнд больше чем правый, иначе true | a < b |
Больше или равно | >= | true если левый операнд больше чем правый или равен ему, иначе false | a >= b |
Меньше или равно | <= | false если левый операнд больше чем правый или равен ему, иначе true | a <= b |
В Swift есть набор операторов, выполняющих сравнение значений. Например:
var a = 1.1
var b = 2.2
var c = a + b
с > 3
с >= 3
с > 4
c < 4
Читается как: больше чем (>), больше или равно (>=) и меньше чем (<). В окне результатов вы увидите true, true, false, true - это логические значения, потому что ответ на каждое из этих утверждений может быть только истинным или ложным.
Если вы хотите проверить равенство, вы не можете использовать =, потому что он уже имеет значение: он используется для присвоения значения переменной. У Swift есть альтернатива в виде ==, что означает «равно». Например:
var name = "Peter Parker"
name == "Peter Parker"
В области результатов будет показано «истина».
Очень важная вещь, которая может вас подловить - это то, что строки в Swift чувствительны к регистру. Что означает, что «Tim McGraw», «TIM MCGRAW» и «TiM mCgRaW» считаются разными. Если вы используете == для сравнения двух строк, вам нужно убедиться, что они имеют одинаковый регистр букв.
Другие операторы
Оператор | Символ | Описание | Пример |
---|---|---|---|
Унарный плюс | + | Присваивает положительное значение | +5 |
Унарный минус | - | Присваивает отрицательное значение | -6 |
Тернарное условие | ?: | Проверяет условие а затем присваивает одно из значений | условие?a:b |
let numberOfWheels = 4
// Ternary Conditional Operator
let transport = numberOfWheels <= 2 ? "motorcycle" : "car" // "mammal"
// Эквивалентно написанию:
if numberOfWheels <= 2 {
transport = "motorcycle"
} else {
transport = "car"
}
}
Все операторы применяются к любым типам данных. Как вы могли догадаться, вы можете сложить два числа типа Double следующим образом:
var a = 1.1
var b = 2.2
var c = a + b
Когда дело доходит до типа String + соединяет строчки вместе. Например:
var name1 = "Peter"
var name2 = "Parker"
var both = name1 + " " + name2
// Peter Parker