1

我想将列表中的每个项目相乘。但是这个例子只返回每一项:

list = 1..10
println list.each{it*2}
4

2 回答 2

3

使用收集()。

IE

list = 1..10
println list.collect{it*2}

[2, 4, 6, 8, 10, 12, 14, 16, 18, 20]
于 2013-11-12T05:36:44.647 回答
0

只有 Groovy 的语法被标准化,而不是默认方法,因此 Groovy 的不同实现对于具体使用的方法有不同的名称。

在 Codehaus Groovy(groovy.codehaus.org 上的 v 2.1.9)中,使用collect...

list = 1..10
println list.collect{it*2}

在 Real Groovy(realgroovy.codeplex.com 上的 v 0.10.0)中,使用更标准的命名map...

test{
  is [1,2,3,].map{it*7} == [7,14,21]
}

我不确定 GrooScript(位于 www.grooscript.org)是如何做到的。

于 2013-11-13T13:22:26.373 回答