Groovy使用列表和范围

时间:2016-03-22 05:57:40

标签: groovy

我试图让自己开始使用Groovy,我试图找出1到100之间可以被7整除的数字。

def numbers=[1..100]
def divisibleBy7 = numbers.findAll {it % 7 == 0 }
divisibleBy7.each{println it}

你能告诉我我做错了什么。来自groovy控制台的错误消息不是很清楚

Exception thrown

groovy.lang.MissingMethodException: No signature of method: groovy.lang.IntRange.mod() is applicable for argument types: (java.lang.Integer) values: [7]
Possible solutions: pop(), min(), max(), add(java.lang.Object), add(java.lang.Object), add(int, java.lang.Object)
    at divisibleBy7$_run_closure1.doCall(divisibleBy7.groovy:2)
    at divisibleBy7.run(divisibleBy7.groovy:2)

1 个答案:

答案 0 :(得分:4)

问题在于[1..100]。方括号是列表的语法。因此,这是IntRange的列表而不是范围本身。你想要的是:

def numbers = 1..100
def divisibleBy7 = numbers.findAll {it % 7 == 0 }
divisibleBy7.each{println it}

你也可以在范围内使用parens。