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)
Je suis sûr qu'il y a un post un peu similaire à ceci, mais ma question est un peu différente. Comme vu ci-dessus, la méthode print_a_line a deux paramètres qui sont line_count et f.Passer un gets.chomp comme argument
1) Comme je l'ai compris, l'argument line_count ne sert que de variable current_line et c'est juste un entier. Quel est le rapport de la rewind (f) Méthode parce que quand j'exécuter le code, le procédé print_a_line montre ceci:
1, Hi
2, I'm a noob
où 1 est la première ligne et la figure 2 est la seconde. line_count est juste un nombre, comment ruby sait que 1 est la ligne 1 et 2 est la ligne 2?
2) Pourquoi utiliser gets.chomp dans la méthode print_a_line? Si je passe juste f comme celui-ci
def print_a_line(line_count, f)
puts "#{line_count}, #{f}"
end
Je vais obtenir un résultat fou qui est
1, #<File:0x007fccef84c4c0>
2, #<File:0x007fccef84c4c0>