Quelle est la différence entre
case item.class
when MyClass
# do something here
when Array
# do something different here
when String
# do a third thing
end
et
case item.class
when MyClass.class
# do something here
when Array.class
# do something different here
when String.class
# do a third thing
end
Pour une raison quelconque, le premier de ces travaux fonctionne parfois et le second ne fonctionne pas, et d'autres fois, le second fonctionne et le premier ne fonctionne pas. Pourquoi? Quelle est la «bonne» façon de le faire?
MyClass === obj
utilise la méthode Module # === pour vérifier s'il obj
s'agit d'une instance de MyClass
.