2016-04-24 3 views
0

私は「ルビーを学びハード・ウェイ」を経ていると私は、このメソッドが取るしようとしている20Rubyスクリプト内のファイルの1行をプリントアウト

input_file = ARGV.first 
current_file = open(input_file) 

def print_a_line(line_count, f) 
    puts "#{line_count}, #{f.gets.chomp}" 
end 

current_line = 1 
print_a_line(current_line, current_file) 

current_line = current_line + 1 
print_a_line(current_line, current_file) 

current_line = current_line + 1 
print_a_line(current_line, current_file) 

運動方法print_a_lineに出くわしました現在の行数をカウントし、その行からのファイルの内容のみを端末に出力します。方法が、current_lineに関連付けられているファイルの行を印刷する方法を知っているのか分かりません。私がこれを見ると、私は#{f.gets.chomp)がファイルの内容全体を返すだろうと思うでしょう。方法は、current_lineを見て、ファイルの関連行を印刷する方法を知っていますか?

答えて

2

print_a_lineで呼び出されたgetsメソッドは、ファイルから1行を読み込みます(内容全体ではありません)。 current_fileによって参照されるFileオブジェクトは、ファイル内の現在の位置を追跡します。したがって、getsが呼び出されるたびに、次の行が返されます。

current_lineは、どの行を読み取るかを特定するためのものではありません。

+0

ありがとうございます! – adamscott

関連する問題