【问题标题】:Groovy building a list with injectGroovy 使用注入构建列表
【发布时间】:2013-10-18 22:57:49
【问题描述】:

全部,

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

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

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

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

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

【问题讨论】:

  • this answer 的哪一部分无法传达inject 的用法?我很乐意清除灰色区域。 :) 您可以在your previous question 上发表评论,而不是发布重复的问题。

标签: list map groovy iteration inject


【解决方案1】:

如果你想要完成的是

...获取当前初始列表状态的代码,返回下一个值,然后 然后在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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-05-12
    • 2016-05-12
    • 1970-01-01
    • 2013-04-04
    • 1970-01-01
    • 2011-05-07
    相关资源
    最近更新 更多