Rubyのクラス型とcase文 質問する

Rubyのクラス型とcase文 質問する

違いは何ですか

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

何らかの理由で、最初の方法は機能して 2 番目の方法は機能しないことがあります。また、2 番目の方法は機能して最初の方法は機能しないこともあります。なぜでしょうか。どちらが「適切な」方法なのでしょうか。

ベストアンサー1

以下を使用する必要があります:

case item
when MyClass
...

私も同じ問題を抱えていました:「case when」で Errno::ECONNRESET クラスをキャッチするにはどうすればよいでしょうか?

おすすめ記事