簡體   English   中英

Groovy findAll閉包參數

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM