Middle
¿Qué es el operador '===' en Ruby?
sobes.tech AI
Respuesta de la IA
El operador === (tres iguales) en Ruby se llama operador de comprobación de pertenencia (case equality operator).
Se usa en expresiones case/when y es definido por las clases para verificar si el operando derecho "pertenece" a la "categoría" o "rango" representado por el operando izquierdo.
El comportamiento del operador === depende de la clase del operando izquierdo.
Ejemplos:
- Clase
Module: Verifica si el operando derecho es una instancia o descendiente del módulo/clase.# Verifica si el operando derecho es una instancia de String o su descendiente. String === "hello" # => true - Clase
Range: Verifica si el operando derecho está dentro del rango.# Verifica si 5 está en el rango 1..10. (1..10) === 5 # => true - Clase
Regexp: Verifica si la cadena coincide con la expresión regular.# Verifica si la cadena "/ruby/" coincide con la expresión regular /ruby/. /ruby/ === "/ruby/" # => true - Clase
Proc: Llama a un bloque con el operando derecho como argumento.# Llama a un bloque con el argumento 5. ->(x) { x > 3 } === 5 # => true - Clase
Symbol: Compara un símbolo con otra cadena o símbolo.# Compara el símbolo :test con la cadena "test". :test === "test" # => true
En la mayoría de otras clases, === se comporta como ==.
Aplicación en case/when:
La expresión case condition es equivalente a una serie de llamadas a === en cada valor when con condition como operando derecho.
# Equivale a String === value
# Luego Integer === value
case value
when String
# ...
when Integer
# ...
end