在每次迭代中分配"it"(groovy)

Chr*_*wes 11 string groovy trim immutability

嘿,我尝试修剪groovy列表中的每个字符串项

list.each() { it = it.trim(); }
Run Code Online (Sandbox Code Playgroud)

但这仅适用于闭包,在列表中字符串仍然是"foo","bar"和"groovy".

我怎样才能实现这一目标?

sep*_*p2k 23

list = list.collect { it.trim() }
Run Code Online (Sandbox Code Playgroud)

  • 一个梦幻和整洁的解决方案.非常感激.我可以做类似这样的事情:items = ViewDefinition.findAllByIdInList(params.id.split(" - ").collect {it as long}) (2认同)

Joh*_*ner 6

您还可以使用spread运算符:

def list = [" foo", "bar ", " groovy "]
list = list*.trim()
assert "foo" == list[0]
assert "bar" == list[1]
assert "groovy" == list[2]
Run Code Online (Sandbox Code Playgroud)