Оператор Dart Null Aware (??): обработка нулевых значений в Dart с примерами

Оператор, поддерживающий значение null, — это функция языка программирования Dart, которая позволяет кратко и эффективно обрабатывать значения NULL. Оператор, поддерживающий нулевое значение, обозначаемый ??, предоставляет сокращенный синтаксис для проверки того, является ли значение нулевым, и предоставления альтернативного значения, если оно есть. Вот пример:

int? nullableValue;
int nonNullableValue = nullableValue ?? 0;
print(nonNullableValue); // Output: 0

В этом примере переменная nullableValueобъявлена ​​как допускающая значение NULL с использованием типа int?. Оператор ??, поддерживающий нулевое значение, проверяет, имеет ли значение nullableValueзначение NULL. Если да, выражение оценивается как значение в правой части ??(в данном случае 0). Если nullableValueне равно нулю, его значение присваивается nonNullableValue.

Вот еще несколько методов, которые можно использовать с оператором, поддерживающим значение null:

  1. Связывание оператора с нулевым значением:

    int? nullableValue;
    int nonNullableValue = nullableValue?.length ?? 0;
    print(nonNullableValue); // Output: 0

    В этом примере оператор ?., поддерживающий нулевое значение, используется для объединения проверки на нулевое значение с другой операцией. Если nullableValueимеет значение null, выражение оценивается как null и последующая операция (length) не выполняется. Если nullableValueне равно нулю, выражение оценивается как результат операции (length).

  2. Использование оператора, поддерживающего значение null, с вызовами функций:

    int? nullableValue;
    int nonNullableValue = nullableValue ?? calculateDefaultValue();
    print(nonNullableValue);
    
    int calculateDefaultValue() {
     // Perform some calculations and return a value
     return 10;
    }

    В этом примере, если nullableValueимеет значение NULL, оператор ??, поддерживающий значение NULL, вызывает функцию calculateDefaultValue(), чтобы получить значение по умолчанию..

  3. Сочетание оператора, поддерживающего значение NULL, с условными выражениями:

    int? nullableValue;
    String message = nullableValue != null ? 'Value is $nullableValue' : 'Value is null';
    print(message);

    В этом примере показано, как можно использовать оператор ??с поддержкой null в сочетании с условным выражением (? :) для предоставления различных значений в зависимости от того, является ли переменная ноль или нет.