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
インデントですが、 case
と when
をあわせる書き方のほうがもしかしたらポピュラーかもしれません。
自分がわかりやすい方にすれば良いと思います。
2022/04/09