Ruby 打印文件中最长的行

Ruby 打印文件中最长的行,ruby,file-io,line,Ruby,File Io,Line,我试图打印文件“words”中最长的一行,这是一个文件,每个文件都有一个新行中的单词列表。 有了下面的代码,我可以让它打印每一行比前一行长的内容。但是,我需要它只打印整个文件中最长的一行 我对Ruby还是新手,在谷歌上似乎找不到答案 max = 0 IO.foreach('words') do |line| if line.length > max max = line.length print line end end 我非常感谢你

我试图打印文件“words”中最长的一行,这是一个文件,每个文件都有一个新行中的单词列表。 有了下面的代码,我可以让它打印每一行比前一行长的内容。但是,我需要它只打印整个文件中最长的一行

我对Ruby还是新手,在谷歌上似乎找不到答案

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

您需要跟踪最长的行,并且只在完成后打印

大概是这样的:

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)

一种更简洁和Ruby风格的方法是

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

非常感谢你!我不知道我们会有像“最长=谢谢”这样的东西!非常感谢你!我不知道我们会有像“最长=谢谢”这样的东西!