Sobes.tech
Middle

Wat is de '===' operator in Ruby?

sobes.tech AI

Antwoord van AI

De operator === (drie gelijke tekens) in Ruby wordt de case equality operator genoemd.

Het wordt gebruikt in case/when-uitdrukkingen en wordt door klassen gedefinieerd om te controleren of de rechter operand behoort tot de "categorie" of "bereik" dat wordt weergegeven door de linker operand.

Het gedrag van de operator === hangt af van de klasse van de linker operand.

Voorbeelden:

  • Klasse Module: Controleert of de rechter operand een instantie of afstammeling van de module/klasse is.
    # Controleert of de rechter operand een instantie van String of een afstammeling ervan is.
    String === "hello"
    # => true
    
  • Klasse Range: Controleert of de rechter operand binnen het bereik ligt.
    # Controleert of 5 binnen de range 1..10 ligt.
    (1..10) === 5
    # => true
    
  • Klasse Regexp: Controleert of de string overeenkomt met de reguliere expressie.
    # Controleert of de string "/ruby/" overeenkomt met de regex /ruby/.
    /ruby/ === "/ruby/"
    # => true
    
  • Klasse Proc: Roept een blok aan met de rechter operand als argument.
    # Roept een blok aan met het argument 5.
    ->(x) { x > 3 } === 5
    # => true
    
  • Klasse Symbol: Vergelijkt een symbool met een andere string of symbool.
    # Vergelijkt het symbool :test met de string "test".
    :test === "test"
    # => true
    

In de meeste andere klassen gedraagt === zich als ==.

Toepassing in case/when:

De uitdrukking case condition is gelijkwaardig aan een reeks aanroepen van === op elke when-waarde met condition als rechter operand.

# Gelijk aan String === value
# Vervolgens Integer === value
case value
when String
  # ...
when Integer
  # ...
end