2007-06-20から1日間の記事一覧

Marshalでオブジェクトを冷凍保存

Marshal.dumpでRubyのオブジェクトをファイルに保存し、Marshal.loadで戻すことができます。 1. 以下のプログラムではオブジェクトxをalice.dumpedというファイルにdumpで保存し、すぐ後でloadしてhelloメソッドを呼び出しています。 require 'pathname' cla…

メソッドの戻り値

Rubyでは、returnが書かれていないとき最後に実行した文の値が戻り値になります。 def method "hello" if false end p method #=> nil 上で、表示されるのがfalseではなくnilなのは、ifの条件式が成り立っていないときのif文の値はnilだから、と理解しました…

正規表現の選択

正規表現の選択(|)の優先順位は低いので注意が必要です。 1. 以下のプログラムは、メールの中から「行頭にFrom:またはSubject:を含む行を抽出する」ものですが、期待はずれに終わります。 # 期待はずれ require 'pathname' Pathname.new('girl.mbox').open('…