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/