假设我有一组参数
def params = ['a','b','c']
是否有一种简短的方法可以为集合的每个元素运行一次接受单个参数的方法来替换它:
params.each {
foo(it)
}
更具说明性(如“反向”扩展运算符)?
答案 0 :(得分:2)
您可以使用collect
:
app.UseCookieAuthentication(new CookieAuthenticationOptions
{
AuthenticationType = DefaultAuthenticationTypes.ApplicationCookie,
LoginPath = new PathString("/Account/Login"),
ExpireTimeSpan = TimeSpan.FromMinutes(1),
...
答案 1 :(得分:2)
或只是一个闭包
def foo = { a -> a + 2 }
def modified = list.collect foo
答案 2 :(得分:1)
您可以使用方法指针:
def l = [1,2,3]
l.each(new A().&lol)
class A {
def lol(l) {
println l
}
}
或者添加一个可以完成所需任务的方法:
def l = [1,2,3]
List.metaClass.all = { c ->
delegate.collect(c)
}
l.all(new A().&lol)
class A {
def lol(l) {
println l
return l+2
}
}