でねえ、私はグルーヴィーアサイン「それは」各反復(グルーヴィー)
list.each() { it = it.trim(); }
にリストの各文字列の項目をトリミングしてみてくださいしかし、クロージャ内でこれだけの作品は、リスト内の文字列は「まだですfoo "、" bar "、" groovy "のようなものです。
どうすれば実現できますか?
でねえ、私はグルーヴィーアサイン「それは」各反復(グルーヴィー)
list.each() { it = it.trim(); }
にリストの各文字列の項目をトリミングしてみてくださいしかし、クロージャ内でこれだけの作品は、リスト内の文字列は「まだですfoo "、" bar "、" groovy "のようなものです。
どうすれば実現できますか?
list = list.collect { it.trim() }
Groovy Quick Startによれば、collect
を使用して閉鎖から返された値を収集します。ここで
は、Groovyのシェルを使用して少し例を示しますsepp2k @
groovy:000> ["a ", " b"].collect { it.trim() }
===> [a, b]
私はルビー
で動作し、これはグルーヴィー リストに働く= list.collect(){it.trim(だと思います); }
また、拡散演算子を使用することができます。
def list = [" foo", "bar ", " groovy "]
list = list*.trim()
assert "foo" == list[0]
assert "bar" == list[1]
assert "groovy" == list[2]
あなたは本当に場所にリストを変更しなければならなかった場合、あなたはlist.eachWithIndex {アイテム、IDX使用することができます - >リスト[IDX] =アイテムを。トリム()}。
collect()は良い方法です。
list = list.collect {it.trim()} ty – codevour
パラメータがないメソッドでは、括弧を省略することはできません。一定。 – sepp2k
素晴らしいときちんとした解決策。大変感謝しています。私は次のようなことができます:items = ViewDefinition.findAllByIdInList(params.id.split( " - ")。collect {it as long}) –