Qual è la differenza tra
case item.class
when MyClass
# do something here
when Array
# do something different here
when String
# do a third thing
end
e
case item.class
when MyClass.class
# do something here
when Array.class
# do something different here
when String.class
# do a third thing
end
Per qualche motivo, il primo di questi funziona a volte e il secondo no, e altre volte, il secondo funziona e il primo no. Perché? Qual è il modo "corretto" per farlo?
MyClass === obj
utilizza il metodo Module # === per verificare se obj
è un'istanza di MyClass
.