(() {
if (done && !operate) {
return x;
} else if (operate)
return y;
else {
return z;
}
})(),
((){})()是什么意思,如何使用,何时使用?
这是分配给变量的函数:
var myFunc = () { ... };
您可以这样称呼它:
myFunc();
这是一个匿名函数:
() { ... }
可悲的是,它没有分配给变量并且没有名称。因此,这是调用此函数的方式:
(() { ... })() // Wrap the function in parenthesis and call it.
我应该如何使用?
如果您懒于创建一个函数(或者无法决定一个好名字),并且确定只使用一次,则可以使用它。
似乎没有用,因为这里没有提供代码可重用性,但是在构建窗口小部件时可能会有所帮助。
考虑一个场景:
Widget1(
child: Widget2(
child: Widget3(
child:
假设您想要一个Widget3的子代,该子代依赖于可以具有多个值的变量x。
您可以这样:
child: x == 0 ? WidgetA() : (x == 1? WidgetB() : (x == 3 ? WidgetC() : ...))
这很复杂。您可能不想这样做!
相反,您可能想要
child: ((){
switch(x) {
case 0:
return WidgetA();
case 1:
return WidgetB();
case 2:
return WidgetC();
.....
}
})()
这看起来更干净。当然,如果您想在其他地方重用此功能,则根本不是一个好的选择,但是如果您确定这是唯一的位置,则可以制作一个像这样的匿名函数并就地调用它。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句