ruby-on-rails 如何在Ruby中检查数组?

yzuktlbb  于 2022-11-19  发布在  Ruby
关注(0)|答案(2)|浏览(139)

我对Ruby还很陌生。我有下面的场景-我需要检查一个关键字在Ruby中是否是数组?
就像这样-

if(value == array) {
do something
}
else 
do something

如何使用ruby中的if条件来实现这一点?
任何教导都将受到真正的赞赏。

tyu7yeag

tyu7yeag1#

更新:

可以使用.class获取Object的类,也可以使用.class.is_a?(Class)获取布尔响应:

ary = []
ary.class => Array
hsh = {}
hsh.class => Hash
float = 10.456
float.class => Float

# and get boolean responses like this:
hsh.class.is_a?(Hash) => true
hsh.class.is_a?(Array) => false

因此,您可以独立处理每个Class。如果有很多潜在的类,请使用case语句:

case value.class
when Array
  # do something to the array
when Hash
  # do something to the hash
when Float
  # do something to the float
when Integer
  # do something to the integer
...
end

旧版:

您可以使用.include?()

array = ['a', 'b', 'c']
array.include?('c') => true
array.include?('d') => false

举个例子:

if array.include?(value)
  # do something
else
  # do something else
end
lrpiutwd

lrpiutwd2#

if value.is_a?(Array)
  # do something
else
  # do something else
end

if value.kind_of?(Array)
  # do something
else
  # do something else
end

#kind_of?#is_a?具有相同的行为。
Ruby: kind_of? vs. instance_of? vs. is_a?

相关问题