2016-07-23 52 views
0

鏈接到練習:http://learnrubythehardway.org/book/ex20.htmlf.gets.chomp在做什麼? (瞭解Ruby的困難的方法:鍛鍊20)

我無法理解在此它顯示運動的輸出:

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是獲得來自命令行的用戶輸入(並切斷換行符)。

回答

2

IO#gets從換行符不變的文件中返回一行(作爲字符串)。 (代碼中的f.gets)。每次調用它時,都會從文件中返回下一行。

String#chomp返回一個新的字符串沒有結尾的換行:

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

在邊注格格方法,如果你給它一個字符串作爲參數,將其刪除,並返回一個還可以刪除字符串的結尾新字符串"hello".chomp("o") >> "hell"