1. ホーム
  2. ruby

[解決済み] Rubyのクラス型とcase文

2022-04-27 21:31:32

質問

とはどのような違いがあるのでしょうか?

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

なぜか、このうち1つ目が動いて2つ目が動かないときと、2つ目が動いて1つ目が動かないときがある。 なぜでしょうか? どれが正しい方法なのでしょうか?

解決方法は?

使用する必要があります。

case item
when MyClass
...

私も同じような問題がありました。 Errno::ECONNRESET クラスを "case when" でキャッチする方法は?