findAll
クロージャーをフィルタリングするためにパラメーターでgroovy を使用したい
filterClosure = { it, param ->
it.getParam == param
}
findAll でこのクロージャーを呼び出すにはどうすればよいですか? 以下のように?
myColl = someColl.findAll(filterClosure ??? )
findAll
クロージャーをフィルタリングするためにパラメーターでgroovy を使用したい
filterClosure = { it, param ->
it.getParam == param
}
findAll でこのクロージャーを呼び出すにはどうすればよいですか? 以下のように?
myColl = someColl.findAll(filterClosure ??? )
コレクションがリストであると仮定すると、カレーを使用して、追加のクロージャーパラメーターにオブジェクトを設定できます。
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"にパラメーターとしてカレーに渡されるものが割り当てられ、"param"にfindAllからのコレクションアイテムが渡されます。findAllは、1つまたは2つのパラメーターのいずれかでクロージャーを取得するため、これはMapコレクションでは機能しません。