caseとifとcondの使い分け

caseがswitchの様に使えば良いことに今頃気づいてみて書いてみただけ。

  • if : 一つの値の一つの調査をしたい場合
  • case : 一つの値について複数の調査をしたい場合
  • cond : 複数の値に複数の調査したい場合

■when(unless)とifの使い分け
whenもunlessもif同様"一つの値の一つの状態を調べる"分けだけど、調べた後の動作が違う感じ。

  • when(unless) : 一つの状態を調べた一つの結果(t or nilの一つ)だけの動作を決める
  • if : 一つの状態を調べた二つの結果(t and nil)に対する動作を決める

良く考えると、調査対象や調査内容、調査結果とかに対する夫々のandとorの違いだったとかに気づいてみたり。

■どうして使い分けるのかとか
 文法的な理解は何となくしてたけど、実際の感覚的な部分でどういう感じで使ったら良いのかとか、caseがswitchの様に使えば良いことに今頃気づいてみて書いてみただけ。実際には殆どどれでやっても良さそうなんだけど、一つの値しか調べないならcond使う必要ないし、できるだけ省エネの文を選んだ方が無駄がなさそうだから、とういう理由で使い分けたら、使い分けれそうとか。