链接到练习:http://learnrubythehardway.org/book/ex20.html
我无法理解练习的输出,它显示:

1, This is line 1
2, This is line 2
3, This is line 3

我不明白代码的哪个部分导致程序读取特定的行它怎么知道读第1行对第2行对第3行?
是否与此部分有关:
def print_a_line(line_count, f)
    puts "#{line_count}, #{f.gets.chomp}"
end

我认为gets.chomp用于从命令行获取用户输入(并切断换行符)。

最佳答案

IO#gets从一个newline完整的文件返回一行(作为字符串)(f.gets在代码中)每次调用它,它都会返回文件的下一行。
String#chomp返回不带尾随换行符的新字符串:

"This is line 1\n".chomp
# => "This is line 1"

关于ruby - f.gets.chomp在做什么? (学习Ruby Hard Way:练习20),我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/38537893/

10-10 13:12