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