What are the ?? double question marks in Dart?

The ?? double question mark operator means “if null”. Take the following expression, for example.

String a = b ?? 'hello';

This means a equals b, but if b is null then a equals 'hello'.

Another related operator is ??=. For example:

b ??= 'hello';

This means if b is null then set it equal to hello. Otherwise, don’t change it.

Reference

Terms

The Dart 1.12 release news collectively referred to the following as null-aware operators:

  • ?? — if null operator
  • ??= — null-aware assignment
  • x?.p — null-aware access
  • x?.m() — null-aware method invocation

Leave a Comment