Alcuni versione botto di Array
metodi sono come compact!
, reject!
, flatten!
, uniq!
ritorno nil
se sono state apportate modifiche:Comportamento dei metodi Bang Array
[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]
Se lo hanno fatto in questo modo, ci deve essere un ragionare. Qualche idea su cosa potrebbe essere?
Questo è un buon punto. Ma non si può dire 'return array.flatten!', Che, a mio parere, sarebbe utile sia – artemave
True. Se questo è quello che vuoi, diresti 'return array.flatten' (no bang) che ti restituirebbe una copia appiattita della matrice originale. –
Che mi costringe a fare una copia dove non è necessario. Il che è esattamente il modo in cui mi sono messo nei guai usando la versione banged in primo luogo. – artemave