ruby on rails-为什么instance_of?(Hash)返回错误的结果



我有一个哈希,它是h = {"1"=>"0-20%"}

我检查h.instance_of?(Hash),它应该返回false,但它返回true

为什么?

h是哈希类和的实例

根据此处:

如果obj是的实例,则返回true给定的类。另请参阅对象#kind_of?。

因此,根据定义h.instance_of?(Hash)将返回true。

没有instance_of。也许你想做instance_of?。它应该返回true,因为它是一个散列。

这是个好问题。但错过了代码的执行上下文。值得一提的是,这个问题有ruby on rails标签。

我不知道具体情况,但在某些情况下,你的Hash可以升级为ActiveSupport::HashWithIndifferentAccess。这使得CCD_ 11返回CCD_。

在这种情况下,使用kind_of?

最新更新