わたなべです。 Minero Aoki <aamine / loveruby.net> writes: > * each_line が each でなくなると不便 > (行単位の each や map や select を活用しているから) > > * 文字単位の each があっても不便 > (map とか select とか inject を使う場面に出会ったことがない) > (Rubyレベルで文字単位に処理するのは遅すぎて使いものに > ならなかった経験がある。正規表現を活用したほうがずっといい) どちらも結局文字単位での処理が遅いから、行単位で扱っていると いう話になりそうな。 > 他の傍例としては、IO#each が「行」を単位に選んでいることが挙げら > れます。IO#each を each_byte や each_block (ないけど) の alias に > することも可能だったはずです。この事実は、文字列のかたまりを扱う > 場合は行を単位として扱うのが *現実的に便利だ* ということを表して > いるのではないでしょうか? 便利かどうかと言われると複数行含んだ文字列を扱うことがどれく らい多いかという話になると思います。現にIO#eachで1行ずつ持っ てくればString#each_lineの出番はなくなりますし。 それともここもreadで全部読みこんだ後の話になりますか? だとするとやはり速さの問題なのかなあ。 -- わたなべひろふみ