Учебники

Свифт — Операторы

Оператор — это символ, который указывает компилятору выполнять определенные математические или логические манипуляции. Objective-C богат встроенными операторами и предоставляет следующие типы операторов —

  • Арифметические Операторы
  • Операторы сравнения
  • Логические Операторы
  • Битовые операторы
  • Операторы присваивания
  • Операторы диапазона
  • Разные Операторы

Этот урок объяснит один за другим арифметические, реляционные, логические, побитовые, присваивания и другие операторы.

Арифметические Операторы

В следующей таблице приведены все арифметические операторы, поддерживаемые языком Swift 4. Предположим, что переменная A содержит 10, а переменная B содержит 20, тогда —

оператор Описание пример
+ Добавляет два операнда А + Б даст 30
Вычитает второй операнд из первого A — B даст -10
* Умножает оба операнда А * Б даст 200
/ Делит числитель на знаменатель Б / у даст 2
% Оператор модуля и остаток от целочисленного / делительного числа B% A даст 0

Операторы сравнения

В следующей таблице показаны все реляционные операторы, поддерживаемые языком Swift 4. Предположим, что переменная A содержит 10, а переменная B содержит 20, тогда —

оператор Описание пример
== Проверяет, равны ли значения двух операндов или нет; если да, то условие становится истинным. (A == B) не соответствует действительности.
знак равно Проверяет, равны ли значения двух операндов или нет; если значения не равны, то условие становится истинным. (A! = B) верно.
> Проверяет, больше ли значение левого операнда, чем значение правого операнда; если да, то условие становится истинным. (A> B) не соответствует действительности.
< Проверяет, меньше ли значение левого операнда, чем значение правого операнда; если да, то условие становится истинным. (A <B) верно.
> = Проверяет, больше ли значение левого операнда или равно значению правого операнда; если да, то условие становится истинным. (A> = B) не соответствует действительности.
<= Проверяет, меньше ли значение левого операнда или равно значению правого операнда; если да, то условие становится истинным. (A <= B) верно.

Логические Операторы

В следующей таблице приведены все логические операторы, поддерживаемые языком Swift 4. Предположим, что переменная A содержит 1, а переменная B содержит 0, тогда —

оператор Описание пример
&& Называется логический оператор И. Если оба операнда отличны от нуля, условие становится истинным. (A && B) неверно.
|| Вызывается логическим оператором ИЛИ. Если любой из двух операндов отличен от нуля, условие становится истинным. (A || B) верно.
! Вызывается логическим оператором НЕ. Используйте для изменения логического состояния своего операнда. Если условие истинно, то оператор Logical NOT сделает его ложным. ! (A && B) верно.

Битовые операторы

Побитовые операторы работают с битами и выполняют побитовые операции. Таблицы истинности для &, | и ^ следующие:

п Q р & д р | д р ^ д
0 0 0 0 0
0 1 0 1 1
1 1 1 1 0
1 0 0 1 1
Assume A = 60; and B = 13;

In binary format, they will be as follows:

A = 0011 1100

B = 0000 1101

-----------------

A & B = 0000 1100

A|B = 0011 1101

A^B = 0011 0001

~A = 1100 0011

Побитовые операторы, поддерживаемые языком Swift 4, перечислены в следующей таблице. Предположим, что переменная A содержит 60, а переменная B содержит 13, тогда 7−

оператор Описание пример
& Двоичный оператор AND немного копирует результат, если он существует в обоих операндах. (A & B) даст 12, что составляет 0000 1100
| Оператор двоичного ИЛИ копирует немного, если он существует в любом из операндов. (A | B) даст 61, что составляет 0011 1101
^ Двоичный оператор XOR копирует бит, если он установлен в одном операнде, но не в обоих. (A ^ B) даст 49, что составляет 0011 0001
~ Оператор дополнения двоичных единиц является унарным и имеет эффект «переворачивания» битов. (~ A) даст -61, что составляет 1100 0011 в форме дополнения 2.
<< Двоичный оператор левого сдвига. Значение левого операнда перемещается влево на количество битов, указанное правым операндом. (A << 2 даст 240, что составляет 1111 0000
>> Оператор двоичного правого сдвига. Значение левого операнда перемещается вправо на количество битов, указанное правым операндом. A >> 2 даст 15, что составляет 0000 1111

Операторы присваивания

SSwift 4 поддерживает следующие операторы присваивания —

оператор Описание пример
знак равно Простой оператор присваивания, присваивает значения от правых операндов к левому операнду C = A + B назначит значение A + B в C
+ = Добавить оператор присваивания И добавляет правый операнд к левому операнду и присваивает результат левому операнду C + = A эквивалентно C = C + A
знак равно Вычитание И оператор присваивания, вычитает правый операнд из левого операнда и присваивает результат левому операнду C — = A эквивалентно C = C — A
знак равно Оператор присваивания умножения И, умножает правый операнд на левый операнд и присваивает результат левому операнду C * = A эквивалентно C = C * A
знак равно Оператор деления И присваивания, делит левый операнд на правый операнд и присваивает результат левому операнду C / = A эквивалентно C = C / A
знак равно Модуль и оператор присваивания, принимает модуль с использованием двух операндов и присваивает результат левому операнду C% = A эквивалентно C = C% A
<< = Левый сдвиг И оператор присваивания C << = 2 совпадает с C = C << 2
>> = Оператор правого сдвига И присваивания C >> = 2 — это то же самое, что C = C >> 2
знак равно Побитовое И оператор присваивания C & = 2 совпадает с C = C & 2
^ = побитовое исключающее ИЛИ и оператор присваивания C ^ = 2 совпадает с C = C ^ 2
| = побитовое ИЛИ и оператор присваивания C | = 2 — это то же самое, что C = C | 2

Операторы диапазона

Swift 4 включает в себя два оператора диапазона, которые являются ярлыками для выражения диапазона значений. Следующая таблица объясняет эти два оператора.

оператор Описание пример
Закрытый диапазон (a … b) определяет диапазон от a до b и включает значения a и b. 1 … 5 дает 1, 2, 3, 4 и 5
Полуоткрытый диапазон (a .. <b) определяет диапазон от a до b, но не включает b. 1 .. <5 дает 1, 2, 3 и 4
Односторонний диапазон

a…, определяет диапазон, который проходит от a до конца элементов

… A, определяет диапазон, начиная от начала до

1… дает 1, 2,3… конец элементов

… 2 дает начало… 1,2

a…, определяет диапазон, который проходит от a до конца элементов

… A, определяет диапазон, начиная от начала до

1… дает 1, 2,3… конец элементов

… 2 дает начало… 1,2

Разные Операторы

Swift 4 поддерживает несколько других важных операторов, включая диапазон и? : которые объяснены в следующей таблице.

оператор Описание пример
Унарный минус Знак числового значения можно переключать с помощью префикса — -3 или -4
Унарий Плюс Возвращает значение, с которым он работает, без каких-либо изменений. +6 дает 6
Троичный условный Состояние ? X: Y Если условие верно? Тогда значение X: в противном случае значение Y

Приоритет операторов

Приоритет оператора определяет группировку терминов в выражении. Это влияет на то, как оценивается выражение. Некоторые операторы имеют более высокий приоритет, чем другие; например, оператор умножения имеет более высокий приоритет, чем оператор сложения.

Например, х = 7 + 3 * 2; здесь x назначено 13, а не 20, потому что оператор * имеет более высокий приоритет, чем +, поэтому он сначала умножается на 3 * 2, а затем прибавляется к 7.

Здесь операторы с самым высоким приоритетом отображаются вверху таблицы, а операторы с самым низким — внизу. Внутри выражения операторы с более высоким приоритетом будут оцениваться первыми.

* & + -! ~ ++ expr —expr

* /%

+ —

>> <<

<> <=> =

==! =

&

^

|

&&

||