Яка різниця між
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
Чомусь перша з них працює іноді, а друга - ні, а інший раз, друга працює, а перша - ні. Чому? Який із них є "правильним" способом це зробити?
MyClass === obj
використовується метод Module # ===, щоб перевірити, чи obj
є примірник MyClass
.