From: keiju@... (=?ISO-2022-JP?B?GyRCQFBETTc9PHkbKEI=?=) Date: 2002-07-04T22:58:06+09:00 Subject: [ruby-dev:17666] Re: substitution at when-clause けいじゅ@日本ラショナルソフトウェアです. In [ruby-dev:17660] the message: "[ruby-dev:17660] Re: substitution at when-clause", on Jul/04 17:37(JST) nobu.nakada@nifty.ne.jp writes: >なかだです。 >なんとなく > > for v where x.kind_of?(v) > >なんてのを思い付きました。ただこの後にwhenが来るのはおかしいよ >うな気もしますが。 うーん. 気持はわかりますが, やはりwhenとの関係が... ># for v if x.kind_of?(v) ># ># はちょっとヘンすぎかも。 新しい予約語が増えないのは良いんでしょうが... この構文はかなり使いでがありますね: 1. val = ... for ary case ary.include?(val) when [1, 2] when [3, 4, 10] ... これなんか結構使えそう. 2. val = ... for range case range.first <= val && val < range.last when 1..2 when 2..3 ... caseだと === しますので, 上記のようなちょっと変えたいときにはかなり便 利. 3. for opt case ARGV.include?(opt) when "-o" when "-f" ... 1と似ていますが, パラメータが逆になっています. 4. obj = ... for klass case obj.instance_of?(klass) when Integer ... Class#=== は kind_of? ですが, instance_of? に変更も簡単. あとなんか事例はないかなぁ... 事例募集中!! __ ..............................石塚 圭樹@日本ラショナルソフトウェア... ----------------------------------->> e-mail: keiju@rational.com <<---