[英]Groovy findAll closure parameters
我想用我的param使用groovy findAll
來過濾閉包
filterClosure = { it, param ->
it.getParam == param
}
我現在如何在findAll中調用此閉包? 如下?
myColl = someColl.findAll(filterClosure ??? )
假設您的集合是一個列表,您可以使用curry用您的對象填充額外的closure參數:
def someColl = ["foo", "bar", "foo", "baz", "foo"]
def filterClosure = { it, param -> it.getParam == param }
myColl = someColl.findAll(filterClosure.curry([getParam:'foo']))
assert ["foo", "foo", "foo"] == myColl
在上面的代碼中,filterClosure“it”將被分配給作為參數傳遞給curry的內容,並且“param”從findAll傳遞給一個集合項。 這對於Map集合不起作用,因為findAll for它需要一個帶有一個或兩個參數的閉包。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.