dart:Function作为对象

在 Dart 中,Function 是一个内置类,位于 dart:core。它用来表示 所有函数对象的公共超类型

但需要注意:Function 本身几乎没有有用的方法和属性,只有继承自 Object 的:

  • noSuchMethod()
  • runtimeType
  • toString()
  • hashCode
  • ==

也就是说,Function 本身并没有提供类似 “反射式调用参数列表” 的方法

虽然 Function 类型没提供太多东西,但 函数对象本身是可调用的,也就是你直接 fn(args) 调用。

除此之外,还可以作为对象使用

void foo(int x) => print("foo: $x");

void main() {
  Function f = foo;

  print(f.runtimeType); // (int) => void
  print(f.toString());  // Closure: (int) => void from Function 'foo': static.
}

类型检查:

f is Function;           // true
f is void Function(int); // true
f is int Function(int);  // false

×

喜欢就点赞,疼爱就打赏