Dart 有一些可识别空值的运算符,即可以这样做
var obj;
obj?.foo(); // foo is only called if obj != null.
这也适用于存储或传递给变量的函数吗?通常的模式是
typedef void SomeFunc();
void foo(SomeFunc f) {
if (f != null) f();
}
在这里有一些能感知 null 的调用会很好,比如f?()
. 有什么我们可以用来不乱扔这些回调的空检查代码的吗?
形成文档:
Dart 是一种真正的面向对象的语言,所以即使是函数也是对象并且有一个类型,Function。
将 null 感知?.
运算符应用于call
函数对象的方法:
typedef void SomeFunc();
SomeFunc f = null;
f?.call();