Groovy-列表和
我试图将0到9之间的所有数字相加,这些数字可以除以3或5 方法1: 按预期打印23张 方法2:同上。但是我试图忽略一个临时变量结果&直接打印Groovy-列表和,groovy,Groovy,我试图将0到9之间的所有数字相加,这些数字可以除以3或5 方法1: 按预期打印23张 方法2:同上。但是我试图忽略一个临时变量结果&直接打印 println (0..9).findAll { (it % 3 == 0 || it % 5 == 0) }.sum() 打印[0,1,2,3,4,5,6,7,8,9] 这是怎么回事?为什么在方法2中显示整个列表而不是总和 方法3:与方法2相同。直接打印。但将范围移动到了一个变量 def lst = 0..9
println (0..9).findAll {
(it % 3 == 0 || it % 5 == 0)
}.sum()
打印[0,1,2,3,4,5,6,7,8,9]
这是怎么回事?为什么在方法2中显示整个列表而不是总和
方法3:与方法2相同。直接打印。但将范围移动到了一个变量
def lst = 0..9
println lst.findAll {
(it % 3 == 0 || it % 5 == 0)
}.sum()
再次打印23
Groovy是否希望我总是有一个临时变量:?Groovy解析器认为你在做什么
println (0..9)
然后对println的结果进行其余的处理
只需用一组外部括号帮助解析器
println( (0..9).findAll {
(it % 3 == 0 || it % 5 == 0)
}.sum() )
groovy解析器认为您正在做
println (0..9)
然后对println的结果进行其余的处理
只需用一组外部括号帮助解析器
println( (0..9).findAll {
(it % 3 == 0 || it % 5 == 0)
}.sum() )
groovy解析器认为您正在执行println 0..9。是的,但是为什么呢?我已经试过了,把所有的东西都用塑料袋包起来。它起作用了。但我的问题是-为什么groovy不这么认为,就像我给println lst.findAll。。。。所以Groovy期望一个变量在一个范围/列表上工作?我不明白。是括号。0..9看起来像一个函数调用groovy解析器认为您正在执行println 0..9。是的,但是为什么呢?我已经试过了,把所有的东西都用塑料袋包起来。它起作用了。但我的问题是-为什么groovy不这么认为,就像我给println lst.findAll。。。。所以Groovy期望一个变量在一个范围/列表上工作?我不明白。是括号。0..9看起来像一个函数调用