11
votes

Attribuer "ça" dans chaque itération (Groovy)

Hey, j'essaie de couper chaque élément de chaîne d'une liste dans Groovy xxx

mais cela ne fonctionne que dans la fermeture, dans la liste Les chaînes sont toujours "foo", "bar" et "groovy".

Comment puis-je atteindre cela?


0 commentaires

5 Réponses :


23
votes
list = list.collect { it.trim() }

3 commentaires

list = list.collect {it.trim ()} ty


Droite, ne peut pas laisser des parens avec des méthodes sans paramètres. Fixé.


Une solution fantastique et bien rangée. Très appréciée. Signifiait que je pourrais faire quelque chose comme ceci: articles = vueDefinition.findallallByIdinlist (paramoses.id.split ("-"). Collec T {IT TERME})



2
votes

Selon le Groovy Quick Démarrage , en utilisant Collect code> Recueillir les valeurs renvoyées à partir de la fermeture.

Voici un petit exemple en utilisant la coque Groovy: P>

groovy:000> ["a    ", "  b"].collect { it.trim() }
===> [a, b]


0 commentaires

0
votes

@ sepp2k je pense que cela fonctionne dans Ruby

Et cela fonctionne à Groovy list = list.collect () {it.trim (); }


0 commentaires

6
votes

Vous pouvez également utiliser l'opérateur de propagation:

def list = [" foo", "bar ", " groovy "]
list = list*.trim()
assert "foo" == list[0]
assert "bar" == list[1]
assert "groovy" == list[2]


0 commentaires

1
votes

Si vous avez vraiment dû modifier la liste en place, vous pouvez utiliser list.echewithIdex {item, IDX -> Liste [IDX] = élément.trim ()}.

collection () est bien meilleur.


0 commentaires