39-45 Bar ustinen izdesen
Язык Swift поддерживает четыре стандартных арифметических оператора для всех числовых типов:
сложение (+)
вычитание (-)
умножение (*)
деление (/)
1 + 2 // равно 3
5 - 3 // равно 2
2 * 3 // равно 6
10.0 / 2.5 // равно 4.0
В отличие от C и Objective-C арифметические операторы Swift по умолчанию не допускают переполнения типа. Контроль переполнения типа включается в Swift специальными операторами (например, a &+ b). Подробнее см. в главе Операторы переполнения.
Оператор сложения служит также для конкатенации, или же склейки, строковых значений (типString):
"hello, " + "world" // равно "hello, world"
Операторы инкремента и декремента
Как и в C, в языке Swift имеются оператор инкремента (++) и оператор декремента (--), которые сокращенно обозначают увеличение и уменьшение переменной на 1 соответственно. Эти операторы можно применять как к целым, так и к вещественным переменным.
var i = 0
++i // теперь i равно 1
При каждом вызове оператора ++i значение i увеличивается на 1. По сути, ++i является краткой формой выражения i = i + 1. Аналогично, --i служит краткой формой выражения i = i - 1.
Символы ++ и -- могут быть как префиксными операторами, так и постфиксными. Выражения ++i иi++ эквивалентны и увеличивают значение i на 1. Точно так же эквивалентны выражения --i и i--, которые уменьшают значение i на 1.
Важно отметить, что эти операторы не только изменяют величину i, но и возвращают значение. Если требуется лишь увеличить или уменьшить i на единицу, возвращенное значение можно проигнорировать. Однако если возвращенное значение действительно нужно использовать, то в зависимости от префиксной или постфиксной формы оператора будут применяться следующие правила:
Если оператор стоит перед переменной, он увеличит ее значение до того, как возвратит результат.
Если оператор стоит после переменной, он увеличит ее значение после того, как возвратит результат.
Пример:
var a = 0
let b = ++a
// теперь a и b равны 1
let c = a++
// теперь a равно 2, но c снова стало 1, как до применения инкремента