From: matz@... (Yukihiro Matsumoto) Date: 1998-03-20T15:31:54+09:00 Subject: [ruby-dev:1875] Re: [Req] default value [Re: [Req] Comparable#min/max] まつもと ゆきひろです In message "[ruby-dev:1874] Re: [Req] default value [Re: [Req] Comparable#min/max]" on 98/03/20, 石塚圭樹 writes: |けいじゅ@日本ラショナルソフトウェアです. |a = b if b = (exp) | |ができなかったので, 勘違いしていたらしい... | |# でも,定数とローカル変数のチェックに違いがあるとは想像しないと思うし... ローカル変数のルールは複雑ですから.^^;;; でも,「ローカル変数のオキテ」にしたがっている限り,問題は発 生しないと思います. ローカル変数のオキテ: メソッドの先頭で必ず初期化する こういうややこしいことに引っかからないために決めたルールです. これに従わないでrubyのローカル変数の罠に引っかかるのは自分の 責任だと思います. # 「ローカル変数のオキテ」については2章の原稿に書いてありま # すから,*石塚さんは*知らないはずはないし.^^;;; | a = perform(default_value){重い式} | |はまだ価値があると思いますがどうでしょう? うーん,文法を拡張することになるので(予約語も増えるし),かな りイヤってのが本音です. a = if defined?(default) then default else 重い式 end または a = defined?(default) ? default : 重い式 とかでいいじゃんと思うんですけど. まつもと ゆきひろ /:|)