我知道案例陈述使用===
,所以:
a = "foo"
=>"foo"
case a
when String
puts "hi"
end
=> hi
但很奇怪:
a === String
=> false
我期待最后一个表达式返回true,我错过了什么?
谢谢!
答案 0 :(得分:0)
要检查变量的类是String
,请使用相等运算符==
。
> a.class == String
=> true
Case
语句使用不相等的===
运算符。它的实现方式因不同类型而异(阅读文档
欲获得更多信息)。它针对以下具体案例实施is_a?
:
> String === 'foo'
=> true
> String === String
=> false