From: matz@... (Yukihiro Matsumoto) Date: 1998-03-20T16:30:57+09:00 Subject: [ruby-dev:1880] Re: [Req] default value [Re: [Req] Comparable#min/max] まつもと ゆきひろです In message "[ruby-dev:1878] Re: [Req] default value [Re: [Req] Comparable#min/max]" on 98/03/20, 石塚圭樹 writes: |けいじゅ@日本ラショナルソフトウェアです. |今となっては忘れましたが, きっと, 定数でできたのでローカル変数でもでき |ると勘違いしたんだと思います. まあ,勘違いは誰にでもありますが…. |>| a = perform(default_value){重い式} |>| |>|はまだ価値があると思いますがどうでしょう? |> |>うーん,文法を拡張することになるので(予約語も増えるし),かな |>りイヤってのが本音です. | |文法は拡張しなくて良いと思うんですが... あ,そうなんですか? 文法の拡張が必要だからこそ提案している のだと思ってたのですが. |def perform(default_value = nil) | begin | yield | rescue | return default_value | end |end | |です. イテレータブロックが何らかの例外を出したらデフォルト値を返すもの |です. うーん,でしたら7行をケチらずに自分のスクリプトに追加しては いかがでしょう.組込み関数にいれるにしてはperformって名前は ナニをするのかいまいち明確でない気がします. まつもと ゆきひろ /:|)