如何一次性清除数组中的每一行?

时间:2010-09-20 10:43:51

标签: ruby arrays chomp

为了编写清洁代码......

IO.popen("Generate a list of files").readlines.each{ |line|
   chomped_line = line.chomp
   # ...
}

4 个答案:

答案 0 :(得分:22)

IO.popen("Generate a list of files").readlines.map(&:chomp)

答案 1 :(得分:3)

IO.read("something").split($/)

$ /是分隔符字符串。 IO.read在读取后关闭文件。

答案 2 :(得分:2)

# Example 1
File.readlines("file.txt").each{|line| line.chomp!}

# Example 2
File.readlines("file.txt").map(&:chomp)

# Example 3
File.open("file.txt", "r"){|file| file.readlines.collect{|line| line.chomp}}

答案 3 :(得分:1)

我会让它更快,消耗更少的内存:

  1. 使用“each_line”而不是“readlines.each”。为什么要一次读取整个输出?
  2. 使用“chomp!” (感叹号)将字符串就地更改。
  3. 然后是:

    IO.popen( "generate_lines").each_line { |line|
        line.chomp!
        do_something_with line
    }