颤振((){})()中的多圆括号是什么意思?

艾哈迈德·艾尔赛德(Ahmed Elsayed)
 (() {
                        if (done && !operate) {
                          return x;
                        } else if (operate)
                          return y;
                        else {
                          return z;
                        }

                      })(),

((){})()是什么意思,如何使用,何时使用?

阿弗里迪·凯亚尔(Afridi Kayal)

这是分配给变量的函数:

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] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章