第3部終わった(たのしいRuby)

第3部は今日で終わりです。次回から第4部(Rubyを使いこなそう)です。内容は文法の細かい法則や、イテレータなどについてだそうです。ぱらぱらと見てみたけど難しそうなので、ここが身に付くかの分かれ道になりそうです。ぼちぼちやっていきます。

メモ(主に復習用)

■第15章・IOクラス

  • IOオブジェクトがファイルのどこを示しているかを示す情報をファイルポインタまたはカレントファイルオフセットという。
  • 改行文字の変換が有効な状態をテキストモードといい、これに対して、変換を行わない状態をバイナリモードという。(いったんバイナリモードに変更したIOオブジェクトをテキストモードに戻すことはできない。)
  • バッファに一定のサイズのデータが蓄えられると、実際に出力を行い、バッファを空にする。このように中間のバッファを使ってデータを処理することをバッファリングという。
  • IO.popen(command, mode)→Rubyのプログラムの中で他のコマンドとデータをやり取りする時に使う。

■第16章・FileクラスとDirクラス

  • File.renameメソッド→ファイル名を変更する。すでに存在するディレクトリの下にファイルを移動することもできる。ディレクトリがなければエラーになる。(ただし、ファイルシステムやドライブを越える移動はできない。)
  • 「require "ftools"」とすることで、File.copyやFile.moveなどのファイルを操作するメソッドを利用できるようになる。File.moveメソッドを使うとファイルシステムやドライブをまたがったファイルの移動ができるようになる。
  • File.deleteメソッド→ファイルを削除する
  • ファイルの場所を表す名前のことを「パス」という。ツリーの起点となるディレクトリは特別に「ルートディレクトリ」といい、「/」のみで表される。(コマンドプロンプト上などではディレクトリの区切り文字として「?」が使われるが、同じプログラムをUnixで実行できなくなるので、「/」を使うほうが無難。)
  • Dir.pwdメソッド→カレントディレクトリを取得する。
  • Dir.chdirメソッド→カレントディレクトリを変更する。引数には、相対パス絶対パスのどちらかを指定する。
  • Dir.globメソッド→シェルのように「*」や「?」などのワイルドカードをつかってファイル名を取得することができる。

■第17章・Timeクラス

  • Time.newメソッドまたはTime.nowメソッドを使って、現在の時刻を表すTimeオブジェクトを得ることができる。

感想など

  • IOクラスはとっつきにくかったです。getsメソッドが出てきた時、頭の中にあの「ゲッツ!」が浮かんできたりして、ちょっと上の空でした。getsは「get string」という意味だそうです。
  • GC(Garbage Collection)インタプリタが適当なタイミングを見計らってどこからも参照されなくなったオブジェクトを開放している機能のこと。
  • Timeクラスのところにちらっと書いてあったのだけど、2038年問題は初めて知りました!