dart 中的 Function() 和 Function 有什么区别?

erl*_*man 3 function dart flutter

在类中声明Function 成员时,我们可以同时进行;

Function first;
Function() second;
Run Code Online (Sandbox Code Playgroud)

它们之间有什么区别?

Rém*_*let 8

  • Function 表示任何函数:
void function() {}
int anotherFunction(int positional, {String named}) {}


Function example = function; // works
example = anotherFunction; // works too
Run Code Online (Sandbox Code Playgroud)
  • Function() 表示一个没有参数的函数:
void function() {}
int anotherFunction(int positional, {String named}) {}


Function() example = function; // works
example = anotherFunction; // doesn't compile. anotherFunction has parameters
Run Code Online (Sandbox Code Playgroud)

的变体Function()可能是:

void Function() example;
Run Code Online (Sandbox Code Playgroud)

同样,我们可以为我们的函数指定参数:

void function() {}
int anotherFunction(int positional, {String named}) {}

int Function(int, {String named}) example;

example = function; // Doesn't work, function doesn't match the type defined
example = anotherFunction; // works
Run Code Online (Sandbox Code Playgroud)