Ruby类类型和CASE语句的区别?

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

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

下面两块代码之间的区别是什么?

case item.class
when MyClass
  # do something here
when Array
  # do something different here
when String
  # do a third thing
end

case item.class
when MyClass.class
  # do something here
when Array.class
  # do something different here
when String.class
  # do a third thing
end

有的时候,第一个工作,第二个不工作,而其他时候,第二个工作,第一个不工作。为什么?

提问于
用户回答回答于
用户回答回答于

在Ruby中

case item
when MyClass
...
when Array
...
when String
...

和下面的类似

if MyClass === item
...
elsif Array === item
...
elsif String === item
...

扫码关注云+社区