在Ruby中,有没有简单些方式确定特定的变量是哈希还是数组?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (18)

要检查@some_var是什么

if @some_var.class.to_s == 'Hash' 

我相信有一个更好的方法来检查是否@some_varHashArray

提问于
用户回答回答于

你可以:

@some_var.class == Hash

或者也可以:

@some_var.is_a?(Hash)

注意:

@some_var.is_a?(Object)  # => true

用户回答回答于

首先,你提的问题的最佳答案是

Hash === @some_var

但这个问题最好通过展示如何做duck-typing来解决

@some_var.respond_to?(:each_pair)

@some_var.respond_to?(:has_key?)

@some_var.respond_to?(:to_hash)

扫码关注云+社区