在 Dart 中,Function 是一个内置类,位于 dart:core。它用来表示 所有函数对象的公共超类型。
但需要注意:Function 本身几乎没有有用的方法和属性,只有继承自 Object 的:
noSuchMethod()runtimeTypetoString()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