須藤です。
In <CAM...@ma...>
"[ruby-gnome2-devel-ja] G_DEF_SETTERなど" on Sun, 18 Dec 2011 16:42:24 +0900,
Masaaki Aoyagi <mas...@gm...> wrote:
> ニコライさんが
> http://sourceforge.net/mailarchive/message.php?msg_id=28076951
> この辺で、速度を気にされて?G_DEF_SETTERSからG_DEF_SETTERを使うように
> 変更されているようです。
> ちょっと面倒なので、必要であればsetterも同時に定義するrb_define_methodを
> rbg_define_methodとして定義し、それを使うように変更していきたいです。
> (singletonとmodule_functionも同様)
> いかがでしょうか?
はい、よいと思います。
> また、setterを現在メソッド定義で行っていますが、aliasで十分な気もするのですが、
> どうでしょうか?
なんか、戻り値がどうこうな話があったんじゃないかなぁと思いま
す。
object.set_XXX("AAA")
のときはobjectを返すのがよいけど
object.XXX = "AAA"
のときは"AAA"を返すのがよい、みたいな。
後者は、
other_varaible = object.XXX = "AAA"
が書けるようにしたいということですね。
でも、最近のRubyだとXXX=の戻り値はメソッド定義に関わらず引数
の値になっている気がするので、aliasで十分な気もします。
(Ruby 1.8.5とかのサポートはもうdropしているので。)
> それと、G_REPLACE_*のようなマクロを定義しているようですが、この辺は
> 実害があっての話なのでしょうか?
すでに存在するメソッドを上書きするとwarningがでるからじゃな
いかと思います。たぶん。
|