From: Kikutani Makoto Date: 1997-09-11T17:20:55+09:00 Subject: [ruby-list:4269] Re: class.new { ... } Wed, Sep 10, 1997 at 05:57:16PM +0900 において Yukihiro Matsumoto さん曰く: > |$c = Canvas.new { > | relief 'sunken' > | bg 'LightCyan1' > | height '10c' > | width '20c' > | pack > |} > | > |とかすればいいことはわかったのですが、 > |この中括弧の部分は文法的にどういうものなのですか? > | > |コンストラクタの引数じゃないし、イテレータだとすると、 > |なんでイテレータになるのかよくわからない。 > > イテレータです.ただし,tk関連のクラスのnewをイテレータとし > て呼び出すと,selfを新たに生成したオブジェクトとしてイテレー > タブロックを評価します.ですから,reliefとかbgとかはCanvasオ > ブジェクトのメソッドなんですね. なるほど、 $c = Canvas.new $c.relief 'sunken' $c.bg 'LightCyan1' $c.height '10c' $c.width '20c' $c.pack と同義ですね。たしかに前のほうが見やすいです。 rubyは見習いだし、tkなんかほとんどはじめてですが、 なかなか面白いですねえ。tclじゃ書く気も起きなかったですが。 -- 人生を背負い投げ 菊谷 誠(Kikutani Makoto) kikutani@eis.or.jp kikutani@jdc.ericsson.se hgf03701@niftyserve.or.jp http://www.eis.or.jp/muse/kikutani/