Sobes.tech
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