Оператор ??=
Оператор ??= присваивает значение переменной
только тогда, когда её текущее значение
равно null. Если переменная уже содержит
какое-либо значение, отличное от null,
то присваивание не выполняется, а переменная
остаётся без изменений. В левой части оператора
указывается переменная, в правой - значение,
которое будет присвоено, если переменная
равна null. Оператор возвращает итоговое
значение переменной после выполнения операции.
Синтаксис
variable ??= value
Пример
Давайте присвоим переменной значение, когда
она равна null:
void main()
{
String? str = null;
str ??= 'abcde';
print(str);
}
Результат выполнения кода:
"abcde"
Пример
А теперь давайте попробуем присвоить значение переменной, которая уже содержит строку:
void main()
{
String? str = 'abcde';
str ??= '12345';
print(str);
}
Результат выполнения кода:
"abcde"
Как видите, присваивание не произошло, так как
переменная не была равна null.
Пример
Оператор ??= возвращает итоговое значение
переменной, поэтому его можно использовать
в выражении:
void main()
{
String? str = null;
String res = str ??= 'abcde';
print(res);
}
Результат выполнения кода:
"abcde"
Пример
Давайте применим оператор ??= к числовой
переменной:
void main()
{
int? num = null;
num ??= 12345;
print(num);
}
Результат выполнения кода:
12345