Dart 中神秘的匿名函数
Mysterious anonymous function in Dart
我知道 () {}
匿名函数的用法,但是 () {}()
是什么意思?
我在这样的文本小部件中使用它:
new Text(
() {
return "hello";
}(),
),
很好用,但为什么我需要在匿名函数后面添加()
?
如果没有第二组括号,您只是在声明一个匿名函数,没有别的。因此,如果没有第二组,您将向 Text
小部件传递函数 reference。
现在,当您添加第二组括号时,您实际上是在调用您定义的函数。
如果换个角度看,可能会更清楚。如果你给那个匿名函数一个名字,你会得到相同的结果。
Function test = () {
return "hello";
};
print(test());
等同于
print(() {
return "hello";
}());
我知道 () {}
匿名函数的用法,但是 () {}()
是什么意思?
我在这样的文本小部件中使用它:
new Text(
() {
return "hello";
}(),
),
很好用,但为什么我需要在匿名函数后面添加()
?
如果没有第二组括号,您只是在声明一个匿名函数,没有别的。因此,如果没有第二组,您将向 Text
小部件传递函数 reference。
现在,当您添加第二组括号时,您实际上是在调用您定义的函数。
如果换个角度看,可能会更清楚。如果你给那个匿名函数一个名字,你会得到相同的结果。
Function test = () {
return "hello";
};
print(test());
等同于
print(() {
return "hello";
}());