Ruby中如何判断一个对象是否为数组?
Ruby判断变量是否为数组的实现方法
在Ruby里,要判断一个变量是否为数组类型,最常用的是is_a?(Array)方法,它会返回布尔值,直接用于if条件判断即可。
基础实现示例
value = [1, 2, 3] # 可替换为任意待判断变量 if value.is_a?(Array) # 变量是数组时执行的逻辑 puts "这是一个数组" else # 变量非数组时执行的逻辑 puts "这不是一个数组" end
其他等价写法
你也可以用kind_of?(Array),它和is_a?功能完全一致:
if value.kind_of?(Array) # 执行数组相关逻辑 end
另外,还可以用Array === value这种写法,效果相同:
if Array === value # 执行数组相关逻辑 end
注意点
- 如果变量可能是
nil,is_a?会直接返回false,无需额外做nil判断(除非你想单独处理nil场景) - 上述方法会把
Array的子类实例也判定为数组,如果需要严格判断是否是Array本身的实例,可以用value.class == Array:
if value.class == Array # 仅当变量是Array类实例时执行 end
内容的提问来源于stack exchange,提问作者anyonymousgamer
相关产品推荐
相关产品推荐

