繁体   English   中英

Dart:如何将function作为参数传递

[英]Dart: How to pass function as parameter

我想从另一个 function 呼叫一个 function,这是我的代码:

  void fooA () {
    //do something
  }
  
  void fooB (fooC) {
    fooC();
  }
  
  fooB (fooA);

为什么 fooA 没有被执行?

您提供的代码功能:

void fooA () {
  print('hi');
}

void fooB (fooC) {
  fooC();
}

main() {
  fooB (fooA);
}

Output:

hi

但是,最好完整键入 function arguments,如:

void fooA() {
  print('hi');
}

void fooB(void Function() fooC) {
  fooC();
}

main() {
  fooB(fooA);
}

请注意完整的描述性类型声明void Function() fooC 这样做使编译器能够使用 static 类型检查来确保传入的 function 具有正确的参数和返回类型。

参考

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM