RubyのSwitch文は、 case when で記述します。case文の値を変数に代入する事もできるのでとても使い勝手が良いです。


ret = case sel
  when "get"
    GetDatMain()
  when "set"
    SetDatMain()
  when "ng"
    "NG"
  when "list"
    GetList()
  else
    exit
end


上記は、各 when 節が1行なので、もう少しコンパクトに書けます。

ret = case sel
  when "get";   GetDatMain()
  when "set";   SetDatMain()
  when "ng";    "NG"
  when "list";  GetList()
  else          exit
end


when に、, で区切って複数の条件を記述することはできません。

case x
  when nil, [], "", 0;  "無"    # => エラー
  when 0..10;           "一桁"
end


上記の場合は、下記の様にします。case の横に変数を書かなくてもOKです。

case
  when x==nil || x==[] || x=="" || x==0;  "無"
  when (0..10) === x;                     "一桁"
end


インデントですが、 casewhen をあわせる書き方のほうがもしかしたらポピュラーかもしれません。 自分がわかりやすい方にすれば良いと思います。

2022/04/09