我试图让自己开始使用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)
答案 0 :(得分:4)
问题在于[1..100]。方括号是列表的语法。因此,这是IntRange的列表而不是范围本身。你想要的是:
def numbers = 1..100
def divisibleBy7 = numbers.findAll {it % 7 == 0 }
divisibleBy7.each{println it}
你也可以在范围内使用parens。