Sobes.tech
Junior

Разкажете за операторите в езика за програмиране Dart.

sobes.tech AI

Отговор от AI

Операторите в Dart се използват за изпълнение на операции върху променливи и стойности.

Основни категории оператори:

  • Присвояване: Присвояват стойност на променлива.
    int a = 10; // Присвояване
    a += 5; // a = a + 5
    a ??= 0; // Присвояване на 0, ако a е null
    
  • Арифметични: Извършват математически операции.
    int sum = 5 + 3;
    int diff = 10 - 2;
    int prod = 4 * 6;
    double div = 15 / 3;
    int rem = 10 % 3; // Остатък при деление
    a++; // Инкремент
    b--; // Декремент
    
  • Отношения: Сравняват две стойности и връщат булево значение.
    bool isEqual = (5 == 5);
    bool isNotEqual = (10 != 5);
    bool isGreater = (7 > 2);
    bool isLess = (3 < 8);
    bool isGreaterOrEqual = (4 >= 4);
    bool isLessOrEqual = (6 <= 10);
    
  • Логически: Извършват логически операции върху булеви стойности.
    bool andResult = true && false;
    bool orResult = true || false;
    bool notResult = !true;
    
  • Типови: Проверяват типа на обекта по време на изпълнение.
    var myObject = "Hello";
    bool isString = myObject is String; // Проверка на тип
    bool isInt = myObject is int;
    String? maybeString;
    int? result = maybeString as int?; // Привеждане към тип (опасно)
    
  • Условни: Позволяват изпълнение на код в зависимост от условие.
    var x = 10;
    var y = (x > 5) ? "по-голямо от 5" : "по-малко или равно на 5"; // Тернарен оператор
    var z = null;
    var value = z ?? "стойност по подразбиране"; // Оператор '??'
    
  • Каскадни оператори (..): Позволяват извикване на няколко метода или присвояване на стойности на свойства на един обект последователно.
    var sb = StringBuffer();
    sb..write("Hello")
      ..write(" ")
      ..write("World!");
    
  • Безопасен достъп до null (?): Използва се за предотвратяване на грешки при работа с nullable типове.
    String? nullableString;
    int? length = nullableString?.length; // Връща null, ако nullableString е null
    
  • Оператор за разпространение (... / ...?): Използва се за включване на всички елементи от списък в друг списък. ...? е безопасен за null.
    var list1 = [1, 2, 3];
    var list2 = [0, ...list1, 4]; // [0, 1, 2, 3, 4]
    var nullableList = null;
    var list3 = [0, ...?nullableList, 4]; // [0, 4]
    

Поредността на изпълнение на операторите (приоритет) определя реда, по който се изпълняват операциите в израза.