10

よりクリーンなコードを書くために...

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

4 に答える 4

25
IO.popen("Generate a list of files").readlines.map(&:chomp)
于 2010-09-20T10:55:05.643 に答える
4
# 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}}
于 2014-09-18T20:26:01.823 に答える
3
IO.read("something").split($/)

$/は区切り文字列です。IO.readは、読み取り後にファイルを閉じます。

于 2010-09-20T14:07:13.077 に答える
1

私はそれをより速くし、より少ないメモリを消費するでしょう:

  1. 「readlines.each」ではなく「each_line」を使用してください。なぜ出力全体を一度に読み取るのですか?
  2. 「chomp!」を使用してください (感嘆符)文字列をインプレースで変更します。

それからそれは:

IO.popen( "generate_lines").each_line { |line|
    line.chomp!
    do_something_with line
}
于 2013-11-14T15:09:48.020 に答える