在dart中将变量定义为Function或Function()有什么区别

  • 本文关键字:Function 区别 变量 定义 dart dart
  • 更新时间 :
  • 英文 :


将变量类型设置为FunctionFunction()有什么区别?

Function function1 = () { print("1"); };
Function() function2 = () { print("2"); };
// Both works 
function1();
function2();

类型Function只是说您的变量指向Function,但不要求此变量指向具有特定签名的函数。

Function()实际上在我的机器上发出了分析器警告,因为这并不完全正确。相反,它应该是void Function() function2 = () { print("2"); };。这指定function2必须指向一个不返回任何内容且不接受任何参数的函数。

最后一个也是如果使用varfinal而不是指定类型,Dart本身将声明的内容。

如果你改变方法来接受一个论点,差异就会变得很明显:

Function function1 = (int a) { print("1"); }; // works
void Function() function2 = (int a) { print("2"); }; // error

最新更新