From: ARIMA Yasuhiro Date: 1998-08-11T15:44:58+09:00 Subject: [ruby-list:9044] Re: making extension module Regard to "[ruby-list:9037] Re: making extension module" by ttate@jaist.ac.jp at Tue, 11 Aug 1998 14:52:52 +0900 有馬@FITECです。 >;; デストラクタがあると嬉しいこと、、、、 >;; これがなかなか思いつかない。(^^; File, db, Socket のクローズとか、オブジェクトを破棄する際にやって ほしいことあれこれをやるのがデストラクタだと思ってたんですが。 普通のファイル出力だとこうなりますね。 def foo f = File.open("hello", "w") f.write "hello" f.close end ここで、f の寿命は、def のスコープ中だけなのだから、 f.close は勝手に起動してくれると嬉しいかと思います。 Ruby を使いはじめたとき、new で initialize が 呼ばれるのに対応して、 GC 起動時には、もしあれば呼ばれる finalize というメソッドがあるかなと 思ったのを思い出しました。 def FILE ... def finalize close end ... end -- 有馬 康弘