From: Kouhei S. <ko...@co...> - 2011-12-18 07:49:17
|
須藤です。 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がでるからじゃな いかと思います。たぶん。 |