Проверка на равенство
Проверка на неравенство
Проверка на то, что значение левого операнда больше правого
Проверка на то, что значение левого операнда меньше правого
Проверка на то, что значение левого операнда больше или равно правого
Проверка на то, что значение левого операнда меньше или равно правого
Данный оператор используется для приведения одного типа данных к другому
Проверяет, что объект имеет указанный тип
Проверяет, что объект не имеет указанного типа
Побитовое логическое «И» между операндами
Побитовое логическое «ИЛИ» между операндами
Побитовое логическое «исключающее ИЛИ» между операндами
Побитовое логическое отрицание. Инвертирует значения бит операнда к которому применяется
Побитовый сдвиг влево. Применяется к одному операнду. Эквивалентно умножению на 2n, где n – число, на которое производится сдвиг
Побитовый сдвиг вправо. Применяется к одному операнду. Эквивалентно целочисленному делению на 2n
Беззнаковый побитовый сдвиг вправо. Отличается от оператора >> тем, что выполняется логический (сдвиг без знака), а не арифметический сдвиг. Младшие биты отбрасываются, а остальные сдвигаются и старшие биты заменяются нулем. Таким образом, затирается знак минус, если такой сдвиг осуществляется на отрицательном числе.
Оператор присваивания
Равносильно a = a + b;
Равносильно a = a - b;
Равносильно a = a * b;
Равносильно a = a / b;
Равносильно a = a % b;
Равносильно a = a ~/ b;
Равносильно a = a >> b;
Равносильно a = a >>> b;
Равносильно a = a << b;
Равносильно a = a ^ b;
Равносильно a = a & b;
Равносильно a = a | b;
Ссылается на значение в списке в соответствии с задаваемым индексом
Позволяет обратиться к свойствам объекта
Как и оператор «.», только дополнительно выполняет проверку на null. В том случае если объект хранит значение null обращения к его свойству не производится и не выбрасываются никакие исключения
Операторы .. и ?.. в языке Dart имеют разные назначения и функциональность.
Оператор .. (каскадный оператор) позволяет выполнять последовательность операций на одном объекте без необходимости повторного указания имени объекта. Он используется для удобного выполнения нескольких операций на одном объекте, например, вызова методов или доступа к полям объекта. Пример использования:
classPerson{
String name;
int age;
void sayHello() {
print('Hello, my name is $name');
}
}
void main() {
var person = Person()
..name = 'Alice'
..age = 25
..sayHello();
}
В данном примере, оператор .. позволяет последовательно установить значения полей name и age объекта person, а затем вызвать метод sayHello() на этом объекте.
Оператор ?.. (условный каскадный оператор) вводится в Dart 2.3 и позволяет выполнить каскадные операции на объекте, только если этот объект не является нулевым (null). Если объект равен нулю, то оператор ?.. не выполняет никаких операций и возвращает нулевое значение. Пример использования:
classPerson{
String name;
int age;
void sayHello() {
print('Hello, my name is $name');
}
}
void main() {
Person person;
person?.name = 'Alice';
person?.age = 25;
person?.sayHello();
}
В данном примере, оператор ?.. позволяет безопасно установить значения полей name и age объекта person, а также вызвать метод sayHello(), даже если объект person равен нулю.
При работе с операциями важно понимать их приоритет, который можно описать следующей таблицей. Чем выше оператор в этой таблице, тем больше его приоритет. При этом скобки повышают приоритет операции, используемой в выражении: