1
我試圖(0到9),其可以由3或5Groovy的 - 列出薩姆
方法1被劃分總結在範圍內的所有的數字:
def result = (0..9).findAll {
(it % 3 == 0 || it % 5 == 0)
}.sum()
println result
打印23這是預期的。
方法2:同上。但我試圖忽略一個臨時變量result
&直接打印。
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的面值ser認爲你在做println(0..9)'。是的,但是爲什麼? –
我試過用()包裝所有東西。有用。但我的問題是 - 爲什麼groovy不這麼認爲,因爲我說給我println lst.findAll ....所以Groovy期望一個變量可以在範圍/列表上工作? – KitKarson
不明白。它是括號。 (0..9)看起來像一個函數調用 –