Middle
Ce este operatorul '===' în Ruby?
sobes.tech AI
Răspuns de la AI
Operatorul === (trei egaluri) în Ruby este numit operatorul de egalitate pentru caz (case equality operator).
Este utilizat în expresiile case/when și este definit de către clase pentru a verifica dacă operandul drept aparține "categoriei" sau "intervalului" reprezentat de operandul stâng.
Comportamentul operatorului === depinde de clasa operandului stâng.
Exemple:
- Clasa
Module: Verifică dacă operandul drept este o instanță sau un subclasă a modulului/clasei.# Verifică dacă operandul drept este o instanță de String sau un subclasă al acesteia. String === "hello" # => true - Clasa
Range: Verifică dacă operandul drept se află în interval.# Verifică dacă 5 se află în intervalul 1..10. (1..10) === 5 # => true - Clasa
Regexp: Verifică dacă șirul de caractere corespunde expresiei regulate.# Verifică dacă șirul "/ruby/" corespunde expresiei regulate /ruby/. /ruby/ === "/ruby/" # => true - Clasa
Proc: Apelează un bloc cu operandul drept ca argument.# Apelează un bloc cu argumentul 5. ->(x) { x > 3 } === 5 # => true - Clasa
Symbol: Compară un simbol cu alt șir de caractere sau simbol.# Compară simbolul :test cu șirul "test". :test === "test" # => true
În majoritatea celorlalte clase, === se comportă ca ==.
Aplicare în case/when:
Expresia case condition este echivalentă cu o serie de apeluri === pe fiecare valoare when, cu condition ca operand drept.
# Echivalent cu String === value
# Apoi Integer === value
case value
when String
# ...
when Integer
# ...
end