Groovy方法作为变量
我有以下Groovy脚本:Groovy方法作为变量,groovy,Groovy,我有以下Groovy脚本: def Deploy() { if (App == "TEST"){ def book = load "book.groovy" book.buildList.each { a lot of actions } else { book.each { the same a lot of actions } } 因此,区别仅在于执行方法(属性):book.buildL
def Deploy() {
if (App == "TEST"){
def book = load "book.groovy"
book.buildList.each {
a lot of actions
}
else {
book.each {
the same a lot of actions
}
}
因此,区别仅在于执行方法(属性):book.buildList.each或book.each。如何避免重复这些操作并保持代码更干净。可能有一种方法可以将book.buildList.each
或book.each
放入变量中?
文件Book.groovy包含很少的映射:
buildList = [
'key1':'value1',
'key2':'value2',
'key3':'value3',
]
anotherList = [
'key11':'value11',
'key22':'value22',
'key33':'value33',
]
return this
但是如果应用程序没有“测试”
我有书
地图:
[
'key1':'value1',
'key2':'value2',
'key3':'value3',
]
如果两个
调用都执行完全相同的操作,则可以将传递给每个方法的闭包体提取到一个变量,并在两个调用之间共享。考虑下面的(简化的)例子:
def闭包={k,v->
println“k=$k,v=$v”
}
定义a=[
“键1”:“值1”,
“键2”:“值2”,
“键3”:“值3”,
]
def b=[
“键11”:“值11”,
“键22”:“值22”,
“key33”:“value33”,
]
println“在映射a上调用公共闭包:”
a、 每次关闭
println“在映射b上调用公共闭包:”
b、 每次关闭
在这个例子中,我使用了变量的公共闭包,然后我能够在两次迭代中重复使用它。另外,请记住,在您的示例中,您使用的是地图,而不是列表。在map上调用每个
都是绝对正确的,在这种情况下,您可以使用带有k
和v
参数的闭包来精确映射键和值。如果两个每个
调用都执行完全相同的操作,您可以将传递给每个
方法的闭包体提取到一个变量,并在两个调用之间共享它。考虑下面的(简化的)例子:
def闭包={k,v->
println“k=$k,v=$v”
}
定义a=[
“键1”:“值1”,
“键2”:“值2”,
“键3”:“值3”,
]
def b=[
“键11”:“值11”,
“键22”:“值22”,
“key33”:“value33”,
]
println“在映射a上调用公共闭包:”
a、 每次关闭
println“在映射b上调用公共闭包:”
b、 每次关闭
在这个例子中,我使用了变量的公共闭包,然后我能够在两次迭代中重复使用它。另外,请记住,在您的示例中,您使用的是地图,而不是列表。在map上调用每个
都是绝对正确的,在这种情况下,您可以使用带有k
和v
参数的闭包来精确映射键和值