新手问题 判断变量是否是数组或其它

fayake · 发布于 2015年04月03日 · 最后由 yarving 回复于 2016年11月25日 · 3089 次阅读
7701
a = [1,2]
a.class == Array

谁还有更好的方法 类似

is_a?

这样的写法

共收到 15 条回复
207

不明白楼主的意思, is_a? 不是能用?


 irb
2.2.1 :001 > a = [1, 2]
 => [1, 2]
2.2.1 :002 > a.is_a? String
 => false
2.2.1 :003 > a.is_a? Array
 => true
2.2.1 :004 >
60

基本上不需要判断的

 a = nil
 Array(a) #=> []

 b = [1,2,3]
Array(b) #=> [1,2,3]
549

Array === a

1

如果就判断是否一个类就 is_a?

如果是多个类就

case object
when Array
when String
when Hash
else
end
594
object = %w(t r y ' r e s p o n d _t o ? ')
last = ''
if object.respond_to?(:each)
  object.each do |item|
    last << item
  end
end
puts last
16228

is_a?的别名kind_of? instance_of? 判断是否是一个类的实例

11261

respond_to?(:to_ary)

7701

#1楼 @lyfi2003 学习了,谢谢!

7701

#2楼 @blacktulip 可以用,is_a?,当时没有想明白,谢谢回复

7701

#4楼 @lululau 这也行,RUBY好NB,学习了,以前想都没有想过

7701

#6楼 @ery 感谢回复,学习了

7701

#8楼 @lekyooz 谢谢,学习了。呵呵

7701

#7楼 @chaucerling 像这种基础知识除了看API还有什么其它途径学习吗?如果看Api又以什么为重点看呢,如果知道烦请回复下。谢谢!

96

多谢@googya irb下测试如下: ··· irb(main):001:0> Array('asdf') => ["asdf"] irb(main):002:0> Array(['asdf', 'asdf']) => ["asdf", "asdf"] irb(main):003:0> ···

需要 登录 后方可回复, 如果你还没有账号请点击这里 注册