gpt4 book ai didi

ruby-on-rails - 如何检查 ruby​​ 中属性的类类型?

转载 作者:数据小太阳 更新时间:2023-10-29 08:29:02 25 4
gpt4 key购买 nike

如何创建如下方法:

def process_by_type *things

things.each {|thing|
case thing.type
when String

when Array

when Hash

end

end
}
end

我知道我可以使用 kind_of?(Array) 等。但我认为这会更简洁,而且我无法在 Class:Object 文档页面上找到它的方法。

最佳答案

像你正在做的那样使用案例陈述的形式:

case obj
when expr1
# do something
when expr2
# do something else
end

相当于执行一堆 if expr === obj (三等号比较)。当 expr 是类类型时,如果 obj 是 expr 的类型或 expr 的子类,则 === 比较返回 true。

因此,以下内容应该符合您的预期:

def process_by_type *things

things.each {|thing|
case thing
when String
puts "#{thing} is a string"
when Array
puts "#{thing} is an array"
when Hash
puts "#{thing} is a hash"
else
puts "#{thing} is something else"
end
}
end

关于ruby-on-rails - 如何检查 ruby​​ 中属性的类类型?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6317247/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com