Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Groovy-列表和_Groovy - Fatal编程技术网

Groovy-列表和

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

我试图将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 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看起来像一个函数调用