Sự khác biệt giữa
case item.class
when MyClass
# do something here
when Array
# do something different here
when String
# do a third thing
end
và
case item.class
when MyClass.class
# do something here
when Array.class
# do something different here
when String.class
# do a third thing
end
Vì một số lý do, cái thứ nhất đôi khi hoạt động và cái thứ hai thì không, và lần khác, cái thứ hai hoạt động và cái thứ nhất thì không. Tại sao? Cái nào là cách "thích hợp" để làm điều đó?
MyClass === obj
sử dụng phương thức Module # === để kiểm tra xem có phải obj
là một thể hiện của MyClass
.