Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/36.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Groovy:在条件满足时添加根闭包_Groovy_Closures - Fatal编程技术网

Groovy:在条件满足时添加根闭包

Groovy:在条件满足时添加根闭包,groovy,closures,Groovy,Closures,对于这个简单的用例有点困惑: 我只想在另一个闭包周围添加一个带条件的闭包。 目前,我只能成功做到这一点: if(condition) { my_root_closure { my_main_closure { do_stuff() } } } else { my_main_closure { do_stuff() } } 我希望在不重复my_main_闭包的情况下执行此操作。为了避免重复,您可以创建调用my_main_闭包的新闭包,并将其存储

对于这个简单的用例有点困惑:
我只想在另一个闭包周围添加一个带条件的闭包。
目前,我只能成功做到这一点:

if(condition) {
  my_root_closure {
    my_main_closure {
      do_stuff()
    }
  }
} else {
  my_main_closure {
    do_stuff()
  }
}

我希望在不重复my_main_闭包的情况下执行此操作。

为了避免重复,您可以创建调用
my_main_闭包的新闭包,并将其存储在变量中:

def mmc = {
    my_main_closure {
        do_stuff()
    }
}

if(condition) {
    my_root_closure( mmc )
} else {
    mmc()
}


我在想一些更不同的事情:
def root={}如果(条件){root=my_root\u closure}root{my_main\u closure{do_stuff()}
@C3PO这也可以工作,但应该是
def root={it()}
,,否则,当
条件==false
时,闭包将不起任何作用。这是我的问题:)我将对此进行测试。Thks