From: kjana@... (YANAGAWA Kazuhisa) Date: 1999-10-30T23:57:57+09:00 Subject: [ruby-dev:8148] Re: multiple conditional switch In message <199910300527.AA00784@fit0298.fitec.co.jp> fit0298@fitec.co.jp writes: > | kjana> ifcase > | kjana> when cond1 > | kjana> stmt1 > > | case true > | when a == 1 > | print 10 > > case [ 式 ] <- 式を省略可能にする > [when 式 [, 式]...[then] > 式..].. > stmts > [else > 式..] > end > > のように case の条件式が省略されたときには true とみなすというのは、 > 使えるとうれしい機能だと思います。これなら新たに ifcase のような語を > 導入しなくてもよいし、文法的には矛盾しないですよね。 「any_object === true #=> true じゃないし....」とおもったけど,そうか, 条件を predicate に限定すれば実は問題ないんですね.でも `obj.is_a? String and obj =~ /foo/' なんてのは使えないのか.... # obj = "foo" なら 0.0 === true #=> false. 省略値を true にするというのは互換性の問題もなくよさそうですけど,もと もとの動機からするとちょっと弱いかな.「省略した場合には when 節の条件 の真偽のみをみる」とすると.... 紛らわしいから別の予約語を作りたくなる. 変なバグを出しそうだし. # 元に戻る. 結局,多条件分岐というのをどのような場面で,どの程度使う物か,というの が問題ですかね.普通の case で間に合う事も多いし. # あるいはどの程度わたしと趣味が合うか (^^; -- 柳川和久 @ 東大阪市 . 大阪府 October 30, 1999 街に戻ったら大きな黒い翼を作ろう 名も知らぬ母の事を想って