空感知函数调用?

Null-aware function call?

Dart 有一些 null-aware 运算符,即可以做到

var obj;
obj?.foo(); // foo is only called if obj != null.

这也适用于存储或传递给变量的函数吗?通常的模式是

typedef void SomeFunc();

void foo(SomeFunc f) {
  if (f != null) f();
}

如果能在这里进行一些 null 感知调用就好了,比如 f?()。有什么我们可以用来避免对这些回调进行空检查的代码吗?

形成docs:

Dart is a true object-oriented language, so even functions are objects and have a type, Function.

将 null 感知 ?. 运算符应用于函数对象的 call 方法:

typedef void SomeFunc();

SomeFunc f = null;

f?.call();