打印文件中最长的一行 Ruby

Print longest line out of a file Ruby

我正在尝试打印文件 'words' 中最长的一行,该文件包含一个单词列表(每个单词占一行)。 使用下面的代码,我可以打印比前一行长的每一行。但是,我需要它来打印整个文件中最长的一行。

我对 Ruby 还是个新手,我似乎无法在 google 上找到答案。

max = 0
IO.foreach('words') do |line|
    if line.length > max
        max = line.length  
        print line 
    end
end

非常感谢您的帮助。

您需要记录最长的一行,并且只在完成后打印。

像这样:

max = 0
longest = ""
IO.foreach('words') do |line|
    if line.length > max
        max = line.length  
        longest = line 
    end
end
print longest

一种更简洁且 Ruby 式的方法是

puts IO.foreach('words').max_by(&:length)