En Java, puede hacer instanceof
. ¿Hay un equivalente de Ruby?¿Cómo puedo verificar si una variable es una instancia de una clase?
Respuesta
Es casi exactamente lo mismo. Puede utilizar Object
's instance_of?
método:
"a".instance_of? String # => true
"a".instance_of? Object # => false
Rubí también tiene las is_a?
y kind_of?
métodos (estos 2 son los alias, y trabajar exactamente el mismo), que devuelve true
es uno de los partidos superclases:
"a".is_a? String # => true
"a".is_a? Object # => true
He tenido éxito con klass
, que devuelve el objeto de la clase. Esto parece ser específico de Rails. uso
muestra:
class Foo
end
Foo.new.klass
# => Foo
Foo.new.klass == Foo
# => true
Foo.new.klass == "Foo"
# => false
También hay un método que logra esto: Object.is_a?
, que tiene el objeto de clase como un argumento y devuelve verdadero si self
es una instancia de la clase o una instancia de una subclase .
Hay un método 'Object # class': http://apidock.com/ruby/Object/class –
Ojalá pudiera elegir dos respuestas correctas. Array no tiene klass como método, pero tiene instance_of pero active_record abjects tiene .klass, creo. – NullVoxPopuli
'Array.class' debería funcionar igual de bien. Me confundí en mi respuesta porque la biblioteca que estoy utilizando amplía la clase 'Object' con el método' clase'. –
Mire los métodos instance_of?
y kind_of?
. Aquí está el enlace doc http://ruby-doc.org/core/classes/Object.html#M000372
¿Lo intentaría is_a? también. –
kind_of?
y is_a?
son sinónimos. Son el equivalente de Ruby al instanceof
de Java.
instance_of?
es diferente, ya que solo devuelve true
si el objeto es una instancia de esa clase exacta, no una subclase.
- 1. En Java, ¿cómo puedo verificar si una colección contiene una instancia de una clase específica?
- 2. PHP: compruebe si una variable es una instancia de una determinada clase
- 3. ¿Cómo puedo verificar si existe una variable en Scheme?
- 4. C# ¿Cómo verificar si una clase implementa una interfaz genérica?
- 5. ¿Cómo verificar si una variable enum es válida?
- 6. Agregando una variable de instancia a una clase en Ruby
- 7. C# ¿Cómo puedo verificar si existe una URL/es válida?
- 8. Ruby: ¿Cómo verificar si una cadena es una hora válida?
- 9. ¿Cómo puedo verificar si una instancia de Lucene IndexWriter es válida/abierta?
- 10. ¿La mejor manera de verificar si una variable es nula?
- 11. ¿Cómo comprobar si una subclase es una instancia de una clase en tiempo de ejecución?
- 12. ¿Cómo puedo crear una nueva instancia de clase de una clase dentro de una clase (estática)?
- 13. ¿Puedo verificar si un objeto es una especie de clase específica, en PHP?
- 14. ¿Cómo puedo verificar si una BST es válida?
- 15. ¿Cómo puedo verificar si una matriz es nula/vacía?
- 16. ¿Cómo puedo verificar si una URL es absoluta usando Python?
- 17. ¿Es una referencia nula una instancia de una clase?
- 18. python 3: cómo verificar si un objeto es una función?
- 19. ¿Cómo puedo verificar la versión de una instancia de Liferay?
- 20. ¿Cómo puedo verificar si existe una cadena en una matriz?
- 21. ¿Qué es una variable de instancia?
- 22. ¿Cómo puedo verificar la existencia de una variable de entorno?
- 23. Verificando si una variable POST [] es una dirección IP?
- 24. ¿Cómo puedo verificar si una variable implementa una interfaz en clojure?
- 25. ¿Cómo verificar si una variable está cargada en JavaScript?
- 26. ¿Cómo puedo verificar si una variable es un objeto jQuery o un elemento DOM simple?
- 27. Comprobación de si una clase es java.lang.Enum
- 28. cómo saber si una variable de JavaScript es una función
- 29. Compruebe si una variable es una matriz
- 30. ¿Alguna manera de verificar si una XmlSchemaParticle es una EmptyParticle?
N.B. Hasta donde sé, esto devuelve falso si 'self' es una instancia de una subclase del argumento. –