Salve a tutti!
Ho un problema con gli array e gli hash
Ho un hash bidimensionale di array fatto in questo modo (in cui gli
array
sono tutti uguali tra loro per ogni indice)
hsh[x][y]
=> [a,b,c,d]
hsh[m][n]
=> [a,b,c,d]
hsh[a][b]
=> [a,b,c,d]
Quello che voglio fare è cancellare un elemento dall’array per un
determinato indice. Uso il metodo delete:
hsh[x][y].delete(a)
Quello che vorrei ottenere è
hsh[x][y]
=> [b,c,d]
hsh[m][n]
=> [a,b,c,d]
hsh[a][b]
=> [a,b,c,d]
Quello che invece ottengo
è:
hsh[x][y]
=> [b,c,d]
hsh[m][n]
=> [b,c,d]
hsh[a][b]
=> [b,c,d]
Sapete dirmi perché vengono cancellati anche dagli altri elementi?
Dimenticavo, l’hash è stato definito
così:
hash_builder = proc { |h,k| h[k] = Hash.new(&hash_builder) }
hsh = Hash.new(&hash_builder)
Grazie a tutti.
Silvia