nessun problema definendolo così come l’ho scritto sopra, il problema
nasce volendolo costruire dinamicamente in questo modo:
rowtograph = []
for nuovoelemento in 0…5
for elemento in 0…5
rowtograph[elemento] << aggiunta[nuovoelemento]
end
end
nelle mie intenzioni questo dovrebbe costruire l’array desiderato, in
realtà produce il seguente errore:
NoMethodError (You have a nil object when you didn’t expect it!
You might have expected an instance of Array.
The error occurred while evaluating nil.<<)
nessun problema definendolo così come l’ho scritto sopra, il problema
nelle mie intenzioni questo dovrebbe costruire l’array desiderato, in
realtà produce il seguente errore:
NoMethodError (You have a nil object when you didn’t expect it!
You might have expected an instance of Array.
The error occurred while evaluating nil.<<)
Ti serve che rowtograph[elemento] abbia come valore iniziale un array
vuoto, ma non
lo inizializzi da nessuna parte. Puoi fare in 2 modi:
rowtograph = []
for nuovoelemento in 0…5
for elemento in 0…5
(rowtograph[elemento] ||= []) << aggiunta[nuovoelemento]
end
end
oppure, visto che la dimensione di rowtograph e’ nota:
rowtograph = Array.new(5) { Array.new }
e il resto non cambia
for elemento in 0…5
rowtograph << aggiunta[elemento]
end
Ciao Claudio, grazie della tua risposta;
facendo come dici tu ogni elemento di rowtograph corrisponde ad un
elemento di aggiunta, invece a me serve che ogni elemento di rowtograph
contenga più elementi di aggiunta, ad es.
nessun problema definendolo cos� come l’ho scritto sopra, il problema
nelle mie intenzioni questo dovrebbe costruire l’array desiderato, in
realt� produce il seguente errore:
NoMethodError (You have a nil object when you didn’t expect it!
You might have expected an instance of Array.
The error occurred while evaluating nil.<<)
Ti serve che rowtograph[elemento] abbia come valore iniziale un array
vuoto, ma non
lo inizializzi da nessuna parte. Puoi fare in 2 modi:
rowtograph = []
for nuovoelemento in 0…5
for elemento in 0…5
(rowtograph[elemento] ||= []) << aggiunta[nuovoelemento]
end
end
oppure, visto che la dimensione di rowtograph e’ nota:
rowtograph = Array.new(5) { Array.new }
e il resto non cambia
S.
Grazie mille Stefano!
provo subito il tuo suggerimento e ti faccio sapere.