ruby - f.gets.chomp 在做什么? (艰难地学习 Ruby : Exercise 20)

标签 ruby string file-io

练习链接:http://learnrubythehardway.org/book/ex20.html

我无法理解显示的练习输出:

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

我不明白代码的哪一部分导致程序读取特定的#of 行。它如何知道读取第 1 行、第 2 行和第 3 行?

和这部分有关系吗:

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

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

最佳答案

IO#gets从文件中返回一行(作为字符串),换行符完好无损。 (代码中的f.gets)。每次调用它时,它都会返回文件的下一行。

String#chomp返回一个没有尾随换行符的新字符串:

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

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

相关文章:

python - 值错误 : invalid literal for int() with base 10: Python

Python while循环返回第N个字母

在 C 中读取和打印 .txt 文件行的最清晰方法

ruby - RSpec any_instance 返回 self

ruby - 操作超时 - High Sierra

ruby - 将数组的数组转换为数组集

ruby-on-rails - omn​​iauth 和电子邮件密码注册的最佳做法是什么?

java - 在 Java 中,为什么我们可以像使用原始类一样使用 String 类?

string - 为什么我的C程序打印这样?我不明白字符串是如何工作的吗?

java - 是否可以在浏览器中编辑计算机上的文件?