0
input_file = ARGV.first
def print_all(f)
puts f.read
end
def rewind(f)
f.seek(0)
end
def print_a_line(line_count, f)
puts "#{line_count}, #{f.gets.chomp}"
end
current_file = open(input_file)
puts "First let's print the whole file:¥n"
print_all(current_file)
puts "Let's rewind kind a like a tape"
rewind(current_file)
puts "Let's print three lines:"
current_line = 1
print_a_line(current_line, current_file)
current_line += 1
print_a_line(current_line, current_file)
我敢肯定有一個有點類似的帖子到這一點,但我的問題是有點不同。如上所示,print_a_line方法得到了兩個參數line_count和f。傳遞一個gets.chomp作爲參數
1)據我所知,line_count參數只作爲current_line變量,它只是一個整數。它是如何涉及倒帶(F)的方法,因爲當我運行該代碼,該方法print_a_line示出了該:
1, Hi
2, I'm a noob
其中1是第一行和圖2是第二個。 line_count只是一個數字,紅寶石如何知道1是1行而2是2行?
2)爲什麼在print_a_line方法中使用gets.chomp?如果我通過只是˚F這樣
def print_a_line(line_count, f)
puts "#{line_count}, #{f}"
end
我會得到一個瘋狂的結果是
1, #<File:0x007fccef84c4c0>
2, #<File:0x007fccef84c4c0>