2016-09-28 12 views
0

私はまだGroovyを少し新しくしました。ちょうどそれをFileBotというプログラムで使用しました。とにかく、10,000行のコードを書くことなく、いくつかのものをうまく並べ替えるためには、マップ内のキーとして範囲を使用できるようにしたいと考えています。ですから、基本的には、 'a'が '1'と '10'の間に 'x'値を返す場合です。私は{a >= 1 && <=10 ? 'Do This' : null}と書くことができることを知っていますが、それはそれを行うためにはるかに多くの書き込みになります。また、私は明らかにこれを複数の異なる範囲に使用したいと考えていますが、これは問題ではありません。Groovy:rangeを地図のキーとして使用しますか?

同様に、これを行う簡単な方法があれば、私はおそらくcsvファイルであると思っていましたが、どのくらい正確かはわかりません。

ご協力いただきありがとうございます。

+0

したがって、 '' Map'の 'key'に' 1..10'を、そして 'x'の値をその値として入れたいのですか? –

答えて

1

アプローチ1:あなたは

を尋ねたとして、あなたは、あなたが次にキー

Map sampleMap = [:] 

sampleMap << [(1..10): "In one ten", (20..30): "In twenty thirty"] 

としてrangesで以下のようにマッピングしていると仮定すると、かなり簡単に

範囲でマップを作成することができます要素が地図の範囲内に存在するかどうかを簡単に見つけることができます。

def found = sampleMap.find { entry -> entry.key.contains(2) } 
println "found : " + found.value 

出力:

found : In one ten 

アプローチ2:

In one ten 

さてあなたも

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 
} 

出力以下のようなグルーヴィースイッチケースを利用することができます

関連する問題