Il 29 novembre 2011 11:06, Enrico M. [email protected] ha
scritto:
Grazie mille, scusatemi tanto ma non ho ancora imparato bene la
sintassi.
Avrei un’altra domanda Nel seguente codice come mai mi ritorna che la
lunghezza della x sempre 1?
Ciao,
x = []
Qui la lunghezza zero.
File.open(“Prova.txt”, “r”) do |aFile|
x << aFile.read.split(" ")
Qui aggiungi un elemento (un array di stringhe), quindi la lunghezza
diventa 1.
end
x.to_a.each do |y|
Questa chiamata a to_a totalmente inutile, un array era e un array
resta
print y
end
print x.length
(Scusa le mie fisime personali, ma perch print? Fa tanto BASIC…
puts non ti piace?)
Quello che ti confonde che stampando un array si ottiene una riga
per ogni elemento, cio, se hai
a = [“array”, “con”, “quattro”, “elementi”]
e scrivi:
puts a
ottieni:
array
con
quattro
elementi
E se questa istruzione in un ciclo, ci sono ottime probabilit di
non capire pi niente, perch non saprai a quale ciclo stato
stampato cosa.
Per capire meglio, o in ogni ciclo scrivi anche, che so,
puts “****************”
cos vedi le varie iterazioni, oppure usi
puts y.inspect
che ti mostrer una rappresentazione dell’array.
Tornando al tuo problema, File.read.split restituisce gi un array, se
non hai altri elementi da aggiungere, tanto vale che tu scriva
direttamente:
x = File.read.split(’ ')
pietro