From: keiju@... (=?ISO-2022-JP?B?GyRCQFBETTc9PHkbKEI=?=) Date: 2002-07-04T03:55:25+09:00 Subject: [ruby-dev:17651] Re: substitution at when-clause けいじゅ@日本ラショナルソフトウェアです. # 松本さんの反応がないから, イマイチなのかなとおもいつつ... In [ruby-dev:17649] the message: "[ruby-dev:17649] Re: substitution at when-clause", on Jul/04 02:58(JST) Takaaki Tateishi writes: >> for v case v == x >> when v1 >> ... >> when v2 >> ... >> else >> end > ># 僕は,このfor-caseが好きです. 私もです. for v の v が when に対応するからでしょうかね. この文法の利点は, 主客も逆転できるのもあるかも知れません. どなたかが case/whenは直感に反するので使わないと言っていましたが, それも問題なく 解消できます. パラメータを逆にして: for v case x === v とするだけですので... というか for v case x.kind_of?(v) ってできるといった方がいいかな? >> for v case r = v.foo(any_expr) >> when a1 >> となりますので, => はそれほどほしくならないかも > >そうかもしれません. >ただ,when節毎でより適切な変数名を*直接*指定して使いたいと >少し思ってはいます. 適切な名前は重要だと思います. 私自身は, Rubyには, メソッド内の一部分における局所的な変数の導入を積極 的に進めるのはちょっとと思っていますが. # 立石さんはliperなのではないかと思いますが... # やはり, メソッドは縦40行内に収まらないと(^^;; In [ruby-dev:17650] the message: "[ruby-dev:17650] Re: substitution at when-clause", on Jul/04 03:10(JST) nobu.nakada@nifty.ne.jp writes: >なかだです。 >> あと, パラメータを複数導入して. >> v1 = ... >> v2 = ... >> for x,y case x === v1 && y === v2 > when [Integer, Integer] > when [Integer, Float] >> ... >> else >> end > >他との整合性からすれば、どっちかというとこうでは。 こちらの方がいいですね. 互換性もですが, こちらの方がfor文とeachのパラ メータの取り扱いに忠実なので自然かと思います. __ ..............................石塚 圭樹@日本ラショナルソフトウェア... ----------------------------------->> e-mail: keiju@rational.com <<---