Ruby 初心者スレッド ..
[
2ch
|
▼Menu
]
■コピペモード
□
スレを通常表示
□
オプションモード
□このスレッドのURL
■項目テキスト
439:デフォルトの名無しさん 08/12/12 20:19:45 ガベージコレクションはプログラム作成者が意識したらダメよ いい意味でも悪い意味でもな オブジェクトの自動回収だけをさせるべき 440:デフォルトの名無しさん 08/12/12 20:28:12 >>437 >>438 自分が一から設計するならそうしたいんですけどね。 hash_table.delete obj みたいなコードがあって、今まで obj はメモリ内で完結するオブジェクトでしたが、 あるとき機能追加で File を持つ obj も扱うようになりました。 これを真面目に close するとすると delete する直前の箇所で、 obj.close if obj.respond_to? :close hash_table.delete obj としたり、 hash_table の初期化をする箇所で class << hash_table = Hash.new alias :__delete :delete def delete obj obj.close if obj.respond_to? :close self.__delete obj end end ... hash_table.delete obj と hash_table を拡張するのは思い付いたんですが、 hash_table 側のコードを変更するよりは、 機能追加する側の obj の方でどうにか (あわよくば GC で勝手に) close できれば そっちの方が変更としてはスマートかな、と思いました。 何か良い方法ありますかね?
次ページ
最新レス表示
スレッドの検索
類似スレ一覧
話題のニュース
おまかせリスト
▼オプションを表示
レスジャンプ
mixiチェック!
Twitterに投稿
オプション
しおりを挟む
スレッドに書込
スレッドの一覧
暇つぶし2ch
4287日前に更新/244 KB
担当:undef