Saltar al contenido

Determinando el tipo de un objeto en ruby

octubre 18, 2021
apple touch icon@2

La forma correcta de determinar el «tipo» de un objeto, que es un término inestable en el mundo Ruby, es llamar object.class.

Dado que las clases pueden heredar de otras clases, si desea determinar si un objeto es «de un tipo particular», puede llamar object.is_a?(ClassName) para ver si object es de tipo ClassName o derivado de él.

Normalmente, la verificación de tipos no se realiza en Ruby, sino que los objetos se evalúan en función de su capacidad para responder a métodos particulares, comúnmente llamados «Tipeo de pato». En otras palabras, si responde a los métodos que desea, no hay razón para ser particular sobre el tipo.

Por ejemplo, object.is_a?(String) es demasiado rígido ya que otra clase podría implementar métodos que lo conviertan en una cadena, o hagan que se comporte de manera idéntica a cómo se comporta String. object.respond_to?(:to_s) sería una mejor manera de probar que el objeto en cuestión hace lo que usted desea.

close