Middle
Kas ir '===' operators Ruby?
sobes.tech AI
Atbilde no AI
Operatora === (trīs vienā) Ruby valodā sauc par pārbaudes operatoru (case equality operator).
Tas tiek izmantots izteiksmēs case/when un tiek definēts klasēs, lai pārbaudītu, vai labais operands pieder "kategorijai" vai "diapazonam", ko pārstāv kreisais operators.
Operatora === uzvedība ir atkarīga no kreisās operandas klases.
Piemēri:
- Klasē
Module: Pārbauda, vai labais operators ir moduļa vai klases instances vai tā pēcnācējs.# Pārbauda, vai labais operators ir `String` vai tā pēcnācējs. String === "hello" # => true - Klasē
Range: Pārbauda, vai labais operators atrodas diapazonā.# Pārbauda, vai 5 ir diapazonā no 1 līdz 10. (1..10) === 5 # => true - Klasē
Regexp: Pārbauda, vai rinda atbilst regulārajai izteiksmei.# Pārbauda, vai rinda "/ruby/" atbilst regulārajai izteiksmei /ruby/. /ruby/ === "/ruby/" # => true - Klasē
Proc: Izsauc bloku ar labo operandu kā argumentu.# Izsauc bloku ar argumentu 5. ->(x) { x > 3 } === 5 # => true - Klasē
Symbol: Salīdzina simbolu ar citu rindu vai simbolu.# Salīdzina simbolu :test ar rindu "test". :test === "test" # => true
Lielākajā daļā citu klases === uzvedas kā ==.
Lietojums case/when:
Izteiksme case condition ir ekvivalenta vairākiem === izsaukumiem ar katru when vērtību, kur condition ir labais operators.
# Ekvivalents ar String === value
# Tad Integer === value
case value
when String
# ...
when Integer
# ...
end