Ruby 初心者スレッド Part 52

このエントリーをはてなブックマークに追加
346デフォルトの名無しさん
RubyのI/OはUNIXに由来するバイトストリーム(バイト列)が基本で
そのバイトストリームを扱う様々なメソッドが提供されている
・バイトを単位として扱う -- IO#each_byte
・文字を単位として扱う -- IO#each_char
・行を単位として扱う -- IO#each_line
・ストリーム全体を単位として扱う -- IO.read

そして、I/O処理における「反復の制御方法(>>293,316,317)」と
「I/Oのデータ単位」は直交する概念だから、ごっちゃにせずそれらの組合せとして考え、
解決したい問題に対して最適な方法(組合せ)を選ぶ必要がある


で、それはさておき、>>316で紹介した(行をI/Oの単位とする)サンプルコードについて、
irb のようにカーソルキーで履歴/行編集ができるよう改造してみた
  http://play.island.ac/codepaste/code?id=1554

標準ライブラリのreadlineとRuby1.9で導入されたEnumeratorクラスの応用になるけど、
Enumuratorクラスはなかなか面白い