Ho alcuni grandi file a larghezza fissa e ho bisogno di rilasciare la riga dell'intestazione.Ruby: c'è qualcosa come Enumerable # drop che restituisce un enumeratore invece di un array?
Tenere traccia di un iteratore non sembra molto idiomatico.
# This is what I do now.
File.open(filename).each_line.with_index do |line, idx|
if idx > 0
...
end
end
# This is what I want to do but I don't need drop(1) to slurp
# the file into an array.
File.open(filename).drop(1).each_line do { |line| ... }
Qual è l'idioma Ruby per questo?
Questa è una soluzione molto carina (e rubyish). Se non ti piace la lingua, cambiala. Ero sicuro che quello che volevo fare era così comune che ci sarebbe stato un idioma o una funzione per farlo comunque. Sono passati due giorni da quando ho chiesto, quindi suppongo di no. enum_cons e enum_slice esistono quindi forse il nome enum_drop si adatterebbe meglio allo stdlib. Grazie. –
Hai ragione. Suona meglio. Cambiato in 'enum_drop'. – Debilski
Non sarebbe più come: ... with_index (n) {| val, idx | yield val} ... –