Dart's ??= operator

??= is a null-aware operator in Dart. What it does is:
if the left operand is null, assign it to the right operand; otherwise it remains unchanged.
which is equivalent to:

a ??= b

Equivalent to:

a = a ?? b

This means that if a is not null, a remains the original value; if a is null, a is assigned the value b.
This operator is useful for setting default values ​​for variables that may be null. For example:

String name; // 假设该变量可以为null

name ??= 'Guest';

print(name); // Guest

Here, because the initial value of name is null, it will be assigned as 'Guest'.
If name initially has a value, it remains unchanged:

String name = 'Tom';

name ??= 'Guest';

print(name); // Tom

So, in summary, the ??= operator provides a concise syntax for setting default values, especially when the initial value may be null.
In Flutter development, since we often need to deal with null values ​​or set default values, the ??= operator can make our code more concise and easy to read. for example:

  Future<Database?> get database async {
    
    
    if(_database == null) {
    
    
      _database = await initDb();
    }
    return _database;
  }

directly abbreviated as

  Future<Database?> get database async {
    
    
    _database ??= await initDb();
    return _database;
  }

Guess you like

Origin blog.csdn.net/yikezhuixun/article/details/130509890