2016-09-28 60 views
0

對於Groovy,我還是一個新手,只是在名爲FileBot的程序中使用它。無論如何,要編寫一些好的東西,而不寫10,000行代碼,我希望能夠使用範圍作爲地圖中的關鍵字。所以基本上我想要做的是如果'a'在'1'和'10'之間返回'x'值。我知道我可以把它寫成{a >= 1 && <=10 ? 'Do This' : null},但那樣寫會更多。另外,我顯然希望將它用於多個不同的範圍,否則這不成問題。Groovy:使用範圍作爲地圖中的鍵?

同樣,如果有更簡單的方法來做到這一點,我想也許與一個CSV文件,但我不知道如何。

任何幫助非常感謝!

+0

所以你想把範圍'1..10'作爲'Map'和'x'中的'key'作爲它的值,對吧? –

回答

1

方法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:

那麼你也可以利用常規開關盒像下面

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