Groovy построение списка с помощью инъекции

Все,

У меня проблема с Groovy. В частности, я хотел бы использовать метод inject для текущего списка, который у меня есть. Мне нужно, чтобы этот список был неизменным и строился для каждого элемента. Вот как выглядит мой список:

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

Я хочу иметь возможность использовать оператор inject для добавления / создания в этот список на лету и назначения его переменной. Желаемый код должен выглядеть примерно так:

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

Очевидно, семантика этой инъекции ускользает от меня. У меня есть функция, которая вернет следующее значение, но я не могу получить список, добавленный элемент за элементом. Идеальный результат - это код, который примет текущее состояние initialList, вернет следующее значение, а затем вставит обработанный результат в конец initialList. Кажется, я не могу понять Groovy inject. Пожалуйста помоги. Любые комментарии полезны.


person DaGr8Gatzby    schedule 11.10.2013    source источник
comment
Какая часть этого ответа не могла передать использование inject? Буду рад очистить серую зону. :) Вместо того, чтобы публиковать повторяющийся вопрос, вы можете прокомментировать свой предыдущий вопрос.   -  person dmahapatro    schedule 11.10.2013


Ответы (1)


Если вы хотите достичь

... код, который примет текущее состояние 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
person John Wagenleitner    schedule 11.10.2013