What is a difference between these operators “?? and ?.”

Technology CommunityCategory: FlutterWhat is a difference between these operators “?? and ?.”
VietMX Staff asked 3 years ago

??

  • It is a null-aware operator which returns the expression on its left unless that expression’s value is null, in which case it evaluates and returns the expression on its right:
print(1 ?? 3); // <-- Prints 1.
print(null ?? 12); // <-- Prints 12.

?.

  • It is a conditional property access which is used to guard access to a property or method of an object that might be null, put a question mark (?) before the dot (.):
  • You can chain multiple uses of ?. together in a single expression:
myObject?.someProperty?.someMethod()

The preceding code returns null (and never calls someMethod()) if either myObject or myObject.someProperty is null.