2013-10-11 4 views
-1

모두,Groovy 인젝션 목록 작성

여기 Groovy에서 문제가 있습니다. 특히 내가 가지고있는 현재 목록에서 inject 메서드를 사용하고 싶습니다. 이 목록은 변경 불가능하고 요소별로 작성해야합니다. 내가/추가 할 분사 문을 사용하여 구축이 목록에 즉시 및 변수에 할당 할 수 있도록하려면

def initialList = [ "A", "B", "C" ] 

: 여기처럼 내 목록 모습입니다. 원하는 코드는 다음과 같아야합니다.

def result = initialList.inject(){ initialList + valueOfNextLetter() } 

분명히이 주입의 의미는 나를 벗어납니다. 다음 값을 반환하는 함수가 있지만 요소를 추가 한 목록을 가져올 수 없습니다. 이상적인 결과는 initialList의 현재 상태를 취하여 다음 값을 반환 한 다음 처리 된 결과를 initialList 끝에 삽입하는 코드입니다. 나는 Groovy가 주입하는 것을 이해하지 못하는 것 같습니다. 도와주세요. 모든 의견이 도움이됩니다.

+1

[대답] (http://stackoverflow.com/a/19287092/2051952)의 어느 부분에서'주사 '사용을 전달할 수 없습니까? 회색 부분을 지우면 행복합니다. :) 중복 질문을 게시하는 대신 [이전 질문] (http://stackoverflow.com/questions/19286182/combining-two-immutable-lists-with-inject)에 댓글을 달 수 있습니다. – dmahapatro

답변

0

당신이 달성하고자하는

..., initialList의 현재 상태를 촬영되는 값을 반환하고, 다음 initialList의 끝에서 처리 된 결과를 주입하는 코드 인 경우.

나는 Collection#plus(Object)을 사용하면 주사하는 것이 아니라 원하는 것으로 생각할 수 있습니다.

def initialList = ['A', 'B', 'C'] 

def valueOfNextLetter = { 
    'D' 
} 

def newList = initialList + valueOfNextLetter() 

assert ['A','B','C','D'] == newList 
assert ['A','B','C'] == initialList