CozzaAmara
05-01-2009, 19:35
Ciao a tutti, ho da poco iniziato a studiare Ruby e facendo vari test mi sono imbattutto in qualcosa che non ho ancora perfettamente afferratto.
Questo blocco di codice funziona correttamente:
codice:
File.open @file, 'r' do |f|
while line = f.gets
puts line
end
end
Mentre se lo "inglobo" all'interno di un metodo
codice:
def leggi
File.open @file, 'r' do |f|
while line = f.gets
STDOUT.puts line
end
end
end
sono appunto obbligato a mettere STDOUT oppure $stdout prima di puts altrimenti ricevo un errore.
(Uninitialized Strem IOError)
Perchè solo "puts line" come nel primo caso non va bene.
Grazie mille.
Questo blocco di codice funziona correttamente:
codice:
File.open @file, 'r' do |f|
while line = f.gets
puts line
end
end
Mentre se lo "inglobo" all'interno di un metodo
codice:
def leggi
File.open @file, 'r' do |f|
while line = f.gets
STDOUT.puts line
end
end
end
sono appunto obbligato a mettere STDOUT oppure $stdout prima di puts altrimenti ricevo un errore.
(Uninitialized Strem IOError)
Perchè solo "puts line" come nel primo caso non va bene.
Grazie mille.