miércoles, noviembre 27, 2013

Groovy: Añadir elementos a una lista (cuidadin!!)

Aunque parezca mentira ("me pongo colorada..."), no en serio, aunque no te lo creas añadir un elemento a una lista de groovy puede resultar peligroso.

Las siguientes instrucciones no hacen lo mismo siempre:
output+=item
output.add(item)


Si el elemento es una lista la primera operacion implica añadir los elementos de la lista y la segunda inserta en la lista destino un objeto de tipo lista.

Si no te lo crees chequea esto:

def input=[1,[2,3],4]
def output=[]
//Warning!! Potential error
input.each{
output+=it
}
println output //=>[1,2,3,4]!!!
println output.size()//=>4
//Right way
output=[]
input.each{
output.add(it)
}
println output //=>[1,[2,3],4]!!!
println output.size()//=>3
Ale, a seguir grooveando con cuidado!

No hay comentarios: