Callable class
是什么鬼,若是学过 Java,你确定会有这样的疑问。编程
没关系,耐心看下去。函数式编程
在 Dart 中容许一个类经过实现call()
方法,让实例像函数那样被直接调用的类, 称为callable class
。函数
class WannabeFunction {
call(String a, String b, String c) => '$a $b $c!';
}
main() {
var wf = new WannabeFunction();
var out = wf("Hi","there,","gang");
print('$out');
}
复制代码
这里,咱们定义了一个名叫 WannabeFunction
的类,实现了一个call()
方法。 而后在main函数中新建一个WannableFunction
的实例wf
,直接用实例函数的写法调用wf("Hi","there,","gang")
。ui
callable class 这样的语法设计有三个好处:this
答案是不能
。spa
class Person {
String name;
int age;
call(String name, int age) {
this.name = name;
this.age = age;
}
call(){} //解析时报错call()已经定义了
}
复制代码
返回 Dart 中的 dynamic
对象, 这样也就适合函数式编程了。设计
有关 callable class
的介绍,官方文档中不多说起,水平有限,只能讲解到这了,若是你有更好的想法,欢迎给我提建议。code