序言
Dart 类的实例能像函数一样被调用,需要实现 call () 方法。
call () 方法能让任何定义了该方法的类的实例模仿函数的行为。此方法支持与普通函数相同的功能,例如参数和返回类型。
call函数
看看下面的代码,你觉得这句话是什么意思
var a = A();
a();
不卖关子了,dart中提供了对于call函数的支持,使得对象实例无需参数名即刻调用。
相当于call是实例对象的默认函数。
call函数的定义和普通函数完全一致,但是函数名必须是call
class A{
call() {
print('call');
}
}
如何调用call函数
void main(List<String> arguments) {
A()();
var a = A();
a();
}
A()() :当你了解到call函数的存在后这句话也就不难理解了,他等同于下面的
var a = A();
a();