我仍然是Groovy的新手,只是在一个名为FileBot的程序中使用它。无论如何,为了对一些事情进行排序,而不编写10,000行代码,我希望能够使用范围作为地图中的关键字。所以基本上我想做的是'a'在'1'和'10'之间返回'x'值。我知道我可以把它写成{a >= 1 && <=10 ? 'Do This' : null}
,但这样做会更多。另外,我显然想将它用于多个不同的范围,或者这不是问题。
同样,如果有更简单的方法可以做到这一点,我想也许有一个csv文件,但我不确定究竟是怎么回事。
非常感谢任何帮助!
答案 0 :(得分:2)
方法1: 正如您所要求的
您可以非常轻松地创建包含范围的地图
假设您的地图如下所示,ranges
为关键
Map sampleMap = [:]
sampleMap << [(1..10): "In one ten", (20..30): "In twenty thirty"]
然后,您可以轻松找到您的元素是否存在于地图范围内,如下所示
def found = sampleMap.find { entry -> entry.key.contains(2) }
println "found : " + found.value
输出:
found : In one ten
方法2:
那么你也可以利用下面的groovy开关案例
def age = 5
switch(age){
case 1..10 :
//do your work
println "In one ten"
break
case 21..50 :
//do your work
println "In twenty fifty"
break
case 51..65 :
//do your work
println "In fifty sixty"
break
default:
//if nothing matches do something here
break
}
输出:
In one ten