Ruby-Klassentypen und case-Anweisungen

Was ist der Unterschied zwische

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

un

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

Aus irgendeinem Grund funktioniert das erste dieser Verfahren manchmal und das zweite nicht, und manchmal funktioniert das zweite und das erste nicht. Warum? Welches ist der "richtige" Weg, um es zu tun?

Antworten auf die Frage(10)

Ihre Antwort auf die Frage