Язык Objective-C позволяет объединять арифметические операторы с оператором присваивания в обобщенном формате:
1 |
op= |
В этом формает op — любой из арифметических операторов, включая +,-,*,/ или %. Кроме того, op может быть любым из битовых операторов для смещения и маскирования, которые описываются ниже.
Рассмотри строку:
1 |
count+=10; |
Оператор <плюс равно> += добавляет выражение, находящеется справа от этого оператора, к переменной, находящейся слева от оператора, и сохраняет результат в этой переменной. Таким образом, приведенная выше строка экивалентна следующей строке:
1 |
count = count + 10; |
В следующем выражении используется оператор <минус равно> для вычитания 5 из значения переменной counter:
1 |
counter-=5; |
Это эквивалентно выражению:
1 |
counter = counter - 5; |
А теперь чуть более сложное выражение:
1 |
a/=b+c; |
Выполняется деление a на то, что находится справа от знака равенства(сумму b и c), и сохранение результата в a. Сначала выполняется сложение, поскольку оператор сложения имеет более высокий приоритет, чем оператор присваивания. Все операторы, кроме точкой, имеют более высокий приоритет, чем операторы присваивания, которые имеют одинаковый приоритет.
Это выражение эквивалентно следующему:
1 |
a = a / (b + c); |
Операторы присваивания используются по трем причинам:
- Программу проще писать. То, что находится слева от оператора присваивания, не нужно повторять с правой стороны
- Результирующее выражение проще читать.
- Программы могут выполнятся быстрее, поскольку компилятор иногда генерирует более короткий код для вычисления выражения.