Cuál es la diferencia entre
case item.class
when MyClass
# do something here
when Array
# do something different here
when String
# do a third thing
end
y
case item.class
when MyClass.class
# do something here
when Array.class
# do something different here
when String.class
# do a third thing
end
Por alguna razón, el primero de estos funciona a veces y el segundo no, y otras veces, el segundo funciona y el primero no. ¿Por qué? ¿Cuál es la forma "adecuada" de hacerlo?
MyClass === obj
utiliza el método Módulo # === para verificar si obj
es una instancia de MyClass
.