Dart基础之 Callable class

前言

Callable class是什么鬼,若是学过 Java,你确定会有这样的疑问。编程

没关系,耐心看下去。函数式编程

什么是 Callable class(可调用类)

在 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

  • 能够让初始化后置
  • 相对的能省略一个命名函数
  • 支持函数式编程(传递方法对象)

可否定义多个 call()

答案是不能spa

class Person {
  String name;
  int age;

  call(String name, int age) {
    this.name = name;
    this.age = age;
  }

  call(){} //解析时报错call()已经定义了
  
}
复制代码

call()返回值

返回 Dart 中的 dynamic 对象, 这样也就适合函数式编程了。设计

后话

有关 callable class 的介绍,官方文档中不多说起,水平有限,只能讲解到这了,若是你有更好的想法,欢迎给我提建议。code

相关文章
相关标签/搜索