82 votes

Comment vérifier si une variable est une instance d’une classe ?

En Java, vous pouvez faire ``. Existe-t-il un équivalent Ruby ?

162voto

John Topley Points 58789

C’est presque exactement la même chose. Vous pouvez utiliser la méthode de 's :

Ruby a également les méthodes et (ces 2 sont des alias, et fonctionnent exactement de la même manière), ce qui renvoie `` est l’un des matchs de superclasses:

19voto

user3622081 Points 21

et sont synonymes. Ils sont l’équivalent de Ruby à Java ``.

est différent en ce sens qu’il ne retourne que si l’objet est une instance de cette classe exacte, et non une sous-classe.

7voto

Anand Points 5381

Regardez et les méthodes. Voici le lien doc http://ruby-doc.org/core/classes/Object.html#M000372

6voto

Steven Xu Points 8025

J’ai eu du succès avec ``, qui renvoie l’objet de classe. Cela semble être spécifique à Rails.

Exemple d’utilisation :

Il existe également une méthode qui accomplit ceci : ``, qui prend l’objet de classe comme argument et renvoie true si `` est une instance de la classe ou une instance d’une sous-classe.

0voto

Vlad Points 53

Ajout d’une autre réponse pour plus d’exhaustivité. Parfois, en particulier pendant les tests, nous pouvons ne pas vouloir accéder à une autre classe par type, donc donné un hachage:

au lieu d’écrire :

nous pouvons écrire :

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X