[ruby-list:43640] Re: case when 〜 end 構文での and/or/not 演算子について

From: "M.Fujii" <boochang@...4.kcn.ne.jp>
Date: 2007-06-20 11:15:29 UTC
List: ruby-list #43640
藤井です。

回答ありがとうございます。

From: Nobuyoshi Nakada <nobu@ruby-lang.org>
Subject: [ruby-list:43638] Re: case when 〜 end 構文での and/or/not 演算子について
Date: Wed, 20 Jun 2007 16:59:02 +0900
> At Wed, 20 Jun 2007 16:47:21 +0900,
> M.Fujii wrote in [ruby-list:43637]:
> > 式を省略した case で and, or, not の必要な条件式を適用する場合、ruby
> > スクリプトとして一般的に用いられているスタイルではどうしているのかを教
> > えて下さい。
> 
> caseで式を省略するかどうかはこの場合関係ないはずです。
> 
> >   (1) and, or, not の使用を避け、&&, ||, ! を使用する。
> >   (2) "when (a and b)" のように括弧を適用する。
> >   (3) case when 〜 end のような構文を使わず、普通に if 〜 elsif 〜 end
> >       を用いる。
> >   (4) 上記以外の何か。
> 
> (1)〜(3)のうちどれでもいいんじゃないでしょうか。

そうですか。では (3) の if 〜 elsif 〜 end を使うことにします。

> 
> > また、"when a and b" のような記述が受理されるように構文を見直していただ
> > ければ幸いです。
> 
> whenのあとに複数の式を書けるという構文を捨てない限り不可能だと
> 思います。

case 後の式を省略しない場合は when の後に複数の式を書ける構文はなくせな
いのはその通りだと思います。以下のようにするのはどうでしょうか?

  - case の後に式がくる場合の when 節の構文は従来通り
  - case の後の式を省略した場合の when 節の構文を見直す
    (こちらの場合では when 節に式を列挙できることに対する必要性は少ない
    と思います)

--
藤井 正行 / Masayuki FUJII


In This Thread