【发布时间】:2010-09-20 10:43:50
【问题描述】:
为了编写更简洁的代码...
IO.popen("Generate a list of files").readlines.each{ |line|
chomped_line = line.chomp
# ...
}
【问题讨论】:
为了编写更简洁的代码...
IO.popen("Generate a list of files").readlines.each{ |line|
chomped_line = line.chomp
# ...
}
【问题讨论】:
IO.popen("Generate a list of files").readlines.map(&:chomp)
【讨论】:
# 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}}
【讨论】:
IO.read("something").split($/)
$/ 是分隔符字符串。 IO.read 读取后关闭文件。
【讨论】:
$/ 严格匹配 \n 换行符,而 chomp 也处理 \r\n。如果你知道你只会有 \n 换行符,这个解决方案比 map/chomp 选项快很多。
我会让它更快,消耗更少的内存:
那就是:
IO.popen( "generate_lines").each_line { |line|
line.chomp!
do_something_with line
}
【讨论】: