Операторы :: Cетевой уголок Majestio

Операторы


Операторы и выражения в Dart классифицируются следующим образом:

Сложение
Вычитание
Умножение
Деление
Деление по модулю
Целочисленное деление
Префиксный инкремент
Постфиксный инкремент
Префиксный декремент
Постфиксный декремент

Проверка на равенство
Проверка на неравенство
Проверка на то, что значение левого операнда больше правого
Проверка на то, что значение левого операнда меньше правого
Проверка на то, что значение левого операнда больше или равно правого
Проверка на то, что значение левого операнда меньше или равно правого

Логическое «И» между операндами
Логическое «ИЛИ» между операндами
Логическое отрицание

Данный оператор используется для приведения одного типа данных к другому
Проверяет, что объект имеет указанный тип
Проверяет, что объект не имеет указанного типа

Побитовое логическое «И» между операндами
Побитовое логическое «ИЛИ» между операндами
Побитовое логическое «исключающее ИЛИ» между операндами
Побитовое логическое отрицание. Инвертирует значения бит операнда к которому применяется
Побитовый сдвиг влево. Применяется к одному операнду. Эквивалентно умножению на 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;

Тернарный оператор. Если условие истинно, то вычисляется и возвращается expr1, в противном случае вычисляется и возвращается значение expr2
Оператор нулевого объединения. Если expr1 не равно null, возвращается его значение, иначе вычисляется и возвращается значение expr2

Используется для вызова функций
Ссылается на значение в списке в соответствии с задаваемым индексом
Позволяет обратиться к свойствам объекта
Как и оператор «.», только дополнительно выполняет проверку на null. В том случае если объект хранит значение null обращения к его свойству не производится и не выбрасываются никакие исключения

Операторы .. и ?.. в языке Dart имеют разные назначения и функциональность. Оператор .. (каскадный оператор) позволяет выполнять последовательность операций на одном объекте без необходимости повторного указания имени объекта. Он используется для удобного выполнения нескольких операций на одном объекте, например, вызова методов или доступа к полям объекта. Пример использования:
class Person {
  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). Если объект равен нулю, то оператор ?.. не выполняет никаких операций и возвращает нулевое значение. Пример использования:
class Person {
  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 равен нулю.
Рейтинг: 0/5 - 0 голосов