Middle
Qu'est-ce que l'opérateur '===' en Ruby?
sobes.tech IA
Réponse de l'IA
L'opérateur === (trois égalités) en Ruby est appelé opérateur de vérification d'appartenance (case equality operator).
Il est utilisé dans les expressions case/when et est défini par les classes pour vérifier si l'opérande droit appartient à la "catégorie" ou à la "plage" représentée par l'opérande gauche.
Le comportement de l'opérateur === dépend de la classe de l'opérande gauche.
Exemples :
- Classe
Module: Vérifie si l'opérande droit est une instance ou une sous-classe du module/classe.# Vérifie si l'opérande droit est une instance de String ou de sa sous-classe. String === "hello" # => true - Classe
Range: Vérifie si l'opérande droit est dans la plage.# Vérifie si 5 est dans la plage 1..10. (1..10) === 5 # => true - Classe
Regexp: Vérifie si la chaîne correspond à l'expression régulière.# Vérifie si la chaîne "/ruby/" correspond à l'expression régulière /ruby/. /ruby/ === "/ruby/" # => true - Classe
Proc: Appelle un bloc avec l'opérande droit comme argument.# Appelle un bloc avec l'argument 5. ->(x) { x > 3 } === 5 # => true - Classe
Symbol: Compare un symbole avec une autre chaîne ou symbole.# Compare le symbole :test avec la chaîne "test". :test === "test" # => true
Dans la plupart des autres classes, === se comporte comme ==.
Utilisation dans case/when :
L'expression case condition est équivalente à une série d'appels à === sur chaque valeur when avec condition comme opérande droit.
# Équivalent à String === value
# Puis Integer === value
case value
when String
# ...
when Integer
# ...
end