トップ «前の日記(2004-11-03 (Wed)) 最新 次の日記(2004-11-08 (Mon))» 編集   RSS 1.0 FEED  

Journal InTime


2004-11-07 (Sun) [長年日記]

_ モジュール関数

ゆうぞうさんとの間で認識に食い違いがあったようだ。 「モジュールの特異メソッドとしてもプライベートインスタンスメソッドとしても定義されているメソッド」という認識でよいですよね?

ゆうぞうさんは、mix-in以外でincludeを使わないらしい。 自分はどうかと言うと、置き場所が決まらない関数的なメソッドをAppName::Utilみたいなモジュールにモジュール関数として突っ込んで includeして使うことがけっこうある。

ただ、名前の衝突に弱いのがincludeの痛いところだ。 *1 C#みたいにメソッドを再定義する時はかならず、

override foo(x)
  ...
end

とする(overrideの代りにdefで再定義しようとするとエラーか警告)、なんてのは嫌がられるだろうな。

Tags: Ruby

*1  includeにかぎらずだけど。そういえば、WEBrick::CGIを継承したクラスで@configというインスタンス変数を使って失敗したこともあったりして。

_ Object#object_id

今さらながらはじめて知った。今はObject#__id__よりもこっちが推奨なのか。

もしや、Object#__send__にも代替が、と思ったけど、こっちはまだないみたい。ruby-talkで議論されていたようだ。 collect派としてはperformを推したいが、ゆうぞうさんはinvokeじゃないの?と言っていた。

-wを使わないと、Object#idのwarningが出ないのは、標準ライブラリでがんがん使われているからだろうな。

Tags: Ruby