使用集合的每个成员作为参数多次调用方法

时间:2015-11-27 15:14:43

标签: groovy

假设我有一组参数

def params = ['a','b','c']

是否有一种简短的方法可以为集合的每个元素运行一次接受单个参数的方法来替换它:

params.each {
    foo(it)
}

更具说明性(如“反向”扩展运算符)?

3 个答案:

答案 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
    }
}