Algunas versiones explosión de Array
métodos son como compact!
, reject!
, flatten!
, uniq!
retorno nil
si no se hicieron cambios:comportamiento de los métodos de la explosión de matriz
[1,[2]].flatten!
# => [1, 2]
[1,2].flatten!
# => nil
[1,[2]].flatten
# => [1, 2]
[1,2].flatten
# => [1, 2]
[1,2,nil].compact!
# => [1, 2]
[1,2].compact!
# => nil
[1,2,nil].compact
# => [1, 2]
[1,2].compact
# => [1, 2]
Si lo hicieron de esta manera, tiene que haber una razón. ¿Alguna idea de lo que podría ser?
Ese es un buen punto. Pero no se puede decir 'return array.flatten!', Que a mí me parece útil – artemave
True. Si eso es lo que quieres, dirías 'return array.flatten' (no bang) que te devolverá una copia aplanada de la matriz original. –
Lo que me obliga a hacer una copia donde no es necesario. Que es exactamente cómo me metí en problemas al usar la versión golpeada en primer lugar. – artemave