1.将函数传递到构造器中,这时候在 传递的过程中,当f赋值给compare的时候,类型信息丢失了。
class SortedCollection {
Function compare;
SortedCollection(int f(Object a, Object b)) {
compare = f;
}
}
// Initial, broken implementation.
int sort(Object a, Object b) => 0;
main() {
//这是将函数传递到构造器中
SortedCollection coll = new SortedCollection(sort);
// 我们只知道 compare 是一个 Function 类型,
// 但是不知道具体是何种 Function 类型?
assert(coll.compare is Function);
//这时候,虽然是Function类型的,但是并不能进行调用coll.compare(12,13)
}
2.使用typedef进行类型定义,其实typedef就是进行起别名
3.可调用函数的使用
直接进行调用