case 语句在判断与 when 指定的值是否相等时, 实际上是使用 === 运算符来判断的. 左边是数值或者字符串时, === 与 == 的意义是一样
的, 除此之外, === 还可以与 =~ 一样来判断正则表达式是否匹配
, 或者判断右边的对象是否属于左边的类
, 等等. 相比单纯地判断两边的值是否相等, === 能表达更加广义的"相等".
BlueDancerdeMacBook-Pro:~ bluedancer$ irb --simple-prompt
>> p (/zz/ === "xyzzy")
true
=> true
>> p (String === "abc")
true
=> true
>> p ((1..3) === 2)
true
=> true
>>
用 if 语句改写case语句的程序如下:
请注意 when 指定的对象 在 === 的左边
case value
when A if A === value
处理 1 处理 1
when B elsif B === value
处理 2 处理 2
else else
处理 3 处理 3
end end
网友评论