2016-09-28 2 views
0

저는 여전히 Groovy를 처음 접했고 FileBot이라는 프로그램에서이 프로그램을 사용했습니다. 어쨌든, 10,000 줄의 코드를 작성하지 않고 어떤 것을 잘 정렬하려면 맵에서 범위를 키로 사용할 수 있기를 원합니다. 그래서 기본적으로 'a'가 '1'과 '10'사이에 'x'값을 반환하면됩니다. 내가 그것을 {a >= 1 && <=10 ? 'Do This' : null}로 쓸 수는 있겠지만 그렇게하는 것이 훨씬 더 씁니다. 또한, 분명히 이것을 여러 다른 범위에 사용하고 싶습니다. 그렇지 않으면 문제가되지 않습니다.Groovy : 범위를지도의 키로 사용 하시겠습니까?

마찬가지로이 작업을 수행하는 더 쉬운 방법이 있다면 아마도 CSV 파일로 생각할 것입니다. 그러나 정확히 어떻게 확신 할 수는 없습니다.

도움을 주시면 감사하겠습니다.

+0

그래서''Map''에서'1.10'을'key '로,'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 :

그럼 당신은 또한 같은 그루비 스위치 케이스를 활용할 수 있습니다

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 
,536,
관련 문제