为什么我们需要 dart 中的 Callable 类

vas*_*hth 11 dart flutter

dart lang 中可调用类的用途是什么?以下是 dart 官方网站上提供的示例代码。

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');
}
Run Code Online (Sandbox Code Playgroud)

添加调用函数并使用类调用它而不是在类中创建函数本身有多大用处

Rém*_*let 8

这对于制作“命名函数”很有用:

class _Foo {
  const Foo();

  void call(int bar) {}

  void named() {}
}

const foo = _Foo();
Run Code Online (Sandbox Code Playgroud)

这允许:

foo(42);
Run Code Online (Sandbox Code Playgroud)

foo.named();
Run Code Online (Sandbox Code Playgroud)

  • 不,我读过它,但我也没有看到它的用例。静态函数就像它看起来一样好,除非我想在函数中保存一些状态,此时它与任何其他对象相同 (5认同)
  • 谢谢。所以基本上它没有那么有用,但它可能是语言设计的一个简单的副作用?它没有添加任何我们不能用相同数量的代码轻松实现不同方式的东西,对吧? (2认同)