Rangeオブジェクトにおけるcase等値演算子の定義とcase文
Rangeオブジェクトにおいてcase等値演算子(===)は以下のように定義される。
左辺(Rangeオブジェクト)が示す範囲内に右辺の値が属していればtrue、それ以外はfalse。
(1..10) === 4 #=> true (1..10) === 10 #=> true (1..10) === 10.1 #=> false
case文においては以下のように処理される
x = 5 case x when 0..10 puts "0 <= #{x} <= 10" when 10..100 puts "10 <= #{x} <= 100" else puts "error" end #=> "0<=5<=10"
case文では、case直後にある式を右辺、when直後にある式を左辺として、case等値演算子で評価している。