Middle
O que é o operador '===' em Ruby?
sobes.tech IA
Resposta da IA
O operador === (três iguais) em Ruby é chamado operador de verificação de pertença (case equality operator).
É usado em expressões case/when e é definido pelas classes para verificar se o operando direito pertence à "categoria" ou ao "intervalo" representado pelo operando esquerdo.
O comportamento do operador === depende da classe do operando esquerdo.
Exemplos:
- Classe
Module: Verifica se o operando direito é uma instância ou descendente do módulo/classe.# Verifica se o operando direito é uma instância de String ou seu descendente. String === "hello" # => true - Classe
Range: Verifica se o operando direito está dentro do intervalo.# Verifica se 5 está no intervalo 1..10. (1..10) === 5 # => true - Classe
Regexp: Verifica se a string corresponde à expressão regular.# Verifica se a string "/ruby/" corresponde à expressão regular /ruby/. /ruby/ === "/ruby/" # => true - Classe
Proc: Chama um bloco com o operando direito como argumento.# Chama um bloco com o argumento 5. ->(x) { x > 3 } === 5 # => true - Classe
Symbol: Compara um símbolo com outra string ou símbolo.# Compara o símbolo :test com a string "test". :test === "test" # => true
Na maioria das outras classes, === comporta-se como ==.
Aplicação em case/when:
A expressão case condition é equivalente a uma série de chamadas a === em cada valor when com condition como operando direito.
# Equivale a String === value
# Depois Integer === value
case value
when String
# ...
when Integer
# ...
end