Flutter 颤振((){})中的多圆括号是什么意思?
((){})是什么意思?我应该在什么时候使用它?这是一个分配给变量的函数:Flutter 颤振((){})中的多圆括号是什么意思?,flutter,dart,Flutter,Dart,((){})是什么意思?我应该在什么时候使用它?这是一个分配给变量的函数: (() { if (done && !operate) { return x; } else if (operate) return y; else {
(() {
if (done && !operate) {
return x;
} else if (operate)
return y;
else {
return z;
}
})(),
你可以这样称呼它:
var myFunc = () { ... };
Widget1(
child: Widget2(
child: Widget3(
child:
这是一个匿名函数:
myFunc();
() { ... }
遗憾的是,它没有分配给变量,也没有名字。下面是调用此函数的方法:
myFunc();
() { ... }
我该怎么用,什么时候用 如果您懒得创建函数(或者无法确定一个好的名称),并且您确定只使用一次,那么您可以使用这个函数 它可能看起来很无用,因为这里没有提供代码可重用性,但是,它在构建小部件时很有用 考虑一个场景:
(() { ... })() // Wrap the function in parenthesis and call it.
假设您想要Widget3的一个子项,它依赖于一个可以有多个值的变量x
您可以这样做:
var myFunc = () { ... };
Widget1(
child: Widget2(
child: Widget3(
child:
这很复杂。你可能不想那样做
相反,你可能想要
child: x == 0 ? WidgetA() : (x == 1? WidgetB() : (x == 3 ? WidgetC() : ...))
这看起来更干净。当然,如果您想在其他地方重复使用此函数,这根本不是一个好的选择,但是如果您确定这是唯一的地方,那么您可以创建一个类似这样的匿名函数并就地调用它。这是一个分配给变量的函数:
(() {
if (done && !operate) {
return x;
} else if (operate)
return y;
else {
return z;
}
})(),
你可以这样称呼它:
var myFunc = () { ... };
Widget1(
child: Widget2(
child: Widget3(
child:
这是一个匿名函数:
myFunc();
() { ... }
遗憾的是,它没有分配给变量,也没有名字。下面是调用此函数的方法:
myFunc();
() { ... }
我该怎么用,什么时候用 如果您懒得创建函数(或者无法确定一个好的名称),并且您确定只使用一次,那么您可以使用这个函数 它可能看起来很无用,因为这里没有提供代码可重用性,但是,它在构建小部件时很有用 考虑一个场景:
(() { ... })() // Wrap the function in parenthesis and call it.
假设您想要Widget3的一个子项,它依赖于一个可以有多个值的变量x
您可以这样做:
var myFunc = () { ... };
Widget1(
child: Widget2(
child: Widget3(
child:
这很复杂。你可能不想那样做
相反,你可能想要
child: x == 0 ? WidgetA() : (x == 1? WidgetB() : (x == 3 ? WidgetC() : ...))
这看起来更干净。当然,如果您想在其他地方重用此函数,那么这根本不是一个好的选择,但是如果您确定这是唯一的地方,那么您可以创建这样的匿名函数并就地调用它。请参阅。在((){})(
:(){}
的情况下,创建一个匿名函数,该函数不带任何参数,并且有一个空的正文,它周围的一组括号用于分组,然后最后一个()
调用它。请参阅。在((){})(
:(){}
的情况下,创建一个匿名函数,该函数不带任何参数,并且有一个空的正文,它周围的一组括号用于分组,然后最后一个()
调用它。