【问题标题】:Groovy : add root closure if conditionGroovy:如果条件,则添加根闭包
【发布时间】:2020-03-08 21:05:29
【问题描述】:

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

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

我想这样做而不重复 my_main_closure 块。

【问题讨论】:

    标签: groovy closures


    【解决方案1】:

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

    def mmc = {
        my_main_closure {
            do_stuff()
        }
    }
    
    if(condition) {
        my_root_closure( mmc )
    } else {
        mmc()
    }
    
    

    【讨论】:

    • 我在想一些更不同的东西:def root = {} if (condition) { root = my_root_closure } root { my_main_closure { do_stuff() } }
    • @C3PO 这也可以,但应该是def root = { it() },否则condition == false时关闭将不起作用。
    • 这是我的问题 :) 我会对此进行测试。谢谢
    猜你喜欢
    • 1970-01-01
    • 2020-06-25
    • 2019-03-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-10-16
    • 2010-12-11
    • 1970-01-01
    相关资源
    最近更新 更多