Sobes.tech
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