我有一段代码如下:
case n
when Numeric
(do this)
else
(do that)
end
但是当n是Fixnum时它正在执行“(do that)”。我在(做那个)设置断点并且做了“pp n.class”产生“Fixnum”的输出。我也尝试了“pp Numeric === n”,它产生了“false”,“pp Numeric === 5”,产生了“true”。怎么能报告一类Fixnum但却未通过测试“Numeric === n”?
答案 0 :(得分:0)
您确定n
确实是Fixnum
吗?
>> n = 5 #=> 5
>> case n
.. when Numeric
.. "Numeric"
.. else
.. "Not numeric"
.. end #=> "Numeric"
只是问因为你还提到Numeric === n
返回false,它不应该:
>> n = 5 #=> 5
>> Numeric === n #=> true
您是否可以发布一些更大的代码片段(我知道您说n.class
是Fixnum
,但代码肯定不会那样)。