-1

全部,

我在这里遇到了 Groovy 的问题。具体来说,我想在我拥有的当前列表上使用注入方法。我需要这个列表是不可变的并且是按元素构建的。这是我的清单的样子:

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

我希望能够使用注入语句即时添加/构建到此列表并将其分配给变量。所需的代码应如下所示:

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

显然,这种注入的语义正在逃避我。我有一个将返回下一个值的函数,但我似乎无法逐个元素地获取列表添加的元素。理想的结果是获取initialList的当前状态,返回下一个值,然后将处理后的结果注入到initialList末尾的代码。我似乎无法理解 Groovy 注入。请帮忙。任何评论都是有帮助的。

4

1 回答 1

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
于 2013-10-11T23:36:34.347 回答