なかだです。 At Mon, 19 Jul 1999 12:40:10 +0900, ARIMA Yasuhiro <fit0298 / fitec.co.jp> wrote: > Ruby でも同様の記述をしたいのですが、なにか方法はありますか? > やっとこさ思いついたのは以下のようなものです。 > > foo.bar.baz.with do |x| > x.a = x.b > x.c = x.d > end module Kernel def with; yield self end end ではどうでしょうか? > できれば、以下ぐらいで書きたいのですが。 > > foo.bar.baz.with do |x| > .a = .b > .c = .d > end これはあくまで主観ですが、ここまで省略してしまうとあまり使い勝手が良く ないように思います。とくにネストしたときに混乱の元になりそうで、デメリッ トの方が気になります。 > Gtk::Style.new.with do |style| > .set_font Gdk::Font.fontset_load '-adobe-helvetica-bold-r-normal--18-*' > .set_fg(Gtk::STATE_NORMAL, 10000, 50000, 60000) > .set_bg(Gtk::STATE_NORMAL, 65535, 50000, 50000) > Gtk::Widget.push_style style > end こういうのは instance_eval でいいんじゃないかと思いますが。本来継承し た initialize でやるべきだけれど、一々クラスを新しく作りたくないというと きの省略法といった感じで。 -- ♪だって だって だって だって Bugってるから♪ 中田 "ねぇ hoge ってして♪" 伸悦