Middle
Cos'è l'operatore '===' in Ruby?
sobes.tech AI
Risposta dell'AI
L'operatore === (tre uguali) in Ruby è chiamato operatore di uguaglianza di caso (case equality operator).
Viene usato nelle espressioni case/when ed è definito dalle classi per verificare se l'operando destro appartiene alla "categoria" o all"intervallo" rappresentato dall'operando sinistro.
Il comportamento dell'operatore === dipende dalla classe dell'operando sinistro.
Esempi:
- Classe
Module: Verifica se l'operando destro è un'istanza o un sottoclasse del modulo/classe.# Verifica se l'operando destro è un'istanza di String o di una sua sottoclasse. String === "hello" # => true - Classe
Range: Verifica se l'operando destro è all'interno dell'intervallo.# Verifica se 5 è nell'intervallo 1..10. (1..10) === 5 # => true - Classe
Regexp: Verifica se la stringa corrisponde all'espressione regolare.# Verifica se la stringa "/ruby/" corrisponde all'espressione regolare /ruby/. /ruby/ === "/ruby/" # => true - Classe
Proc: Chiama un blocco con l'operando destro come argomento.# Chiama un blocco con l'argomento 5. ->(x) { x > 3 } === 5 # => true - Classe
Symbol: Confronta un simbolo con un'altra stringa o simbolo.# Confronta il simbolo :test con la stringa "test". :test === "test" # => true
Nella maggior parte delle altre classi, === si comporta come ==.
Applicazione in case/when:
L'espressione case condition è equivalente a una serie di chiamate a === su ogni valore when con condition come operando destro.
# Equivale a String === value
# Poi Integer === value
case value
when String
# ...
when Integer
# ...
end