Comment puis-je vérifier si une variable est une instance d'une classe?
En Java, vous pouvez le faire instanceof
. Est-il un Rubis équivalent?
Vous devez vous connecter pour publier un commentaire.
En Java, vous pouvez le faire instanceof
. Est-il un Rubis équivalent?
Vous devez vous connecter pour publier un commentaire.
C'est presque exactement la même. Vous pouvez utiliser
Object
'sinstance_of?
méthode:Ruby a aussi le
is_a?
etkind_of?
méthodes (ces 2 sont des alias, et fonctionnent exactement de la même), qui renvoietrue
est l'un des super-classes correspondant:self
est une instance d'une sous-classe de l'argument.kind_of?
etis_a?
sont synonymes. Ils sont le Rubis est l'équivalent de Javainstanceof
.instance_of?
est différente en ce qu'elle renvoie uniquementtrue
si l'objet est une instance de la même classe, pas une sous-classe.Avoir regarder
instance_of?
etkind_of?
méthodes. Voici la doc du lien http://ruby-doc.org/core/classes/Object.html#M000372J'ai eu du succès avec
klass
, qui renvoie la classe de l'objet. Ce qui semble être des Rails spécifiques.Exemple d'utilisation:
Il y a aussi une méthode qui effectue cette opération:
de l'Objet.is_a?
, qui prend la classe de l'objet en argument et renvoie true siself
est une instance de la classe ou une instance d'une sous-classe.Object#class
: apidock.com/ruby/Object/classArray.class
devrait fonctionner tout aussi bien. Je me suis mélangé dans ma réponse, car la bibliothèque, je suis en utilisant étend la classeObject
avec la méthodeclass
.