Sobes.tech
Middle

Kas yra '===' operatorius Ruby?

sobes.tech AI

Atsakymas iš AI

„===“ operatorius (trigubas lygybės ženklas) Ruby kalboje vadinamas priklausomybės patikros operatoriumi („case equality operator“).

Jis naudojamas išraiškose case/when ir apibrėžiamas klasių, kad patikrintų, ar dešinysis operandas priklauso „kategorijai“ arba „intervalui“, kurį atitinka kairysis operandas.

„===“ operatoriaus elgsena priklauso nuo kairiojo operandų klasės.

Pavyzdžiai:

  • Klasė Module: Patikrina, ar dešinysis operandas yra modulio arba klasės egzempliorius arba jo palikuonis.
    # Patikrina, ar dešinysis operandas yra `String` arba jo palikuonis.
    String === "hello"
    # => true
    
  • Klasė Range: Patikrina, ar dešinysis operandas yra intervale.
    # Patikrina, ar 5 yra intervale nuo 1 iki 10.
    (1..10) === 5
    # => true
    
  • Klasė Regexp: Patikrina, ar eilutė atitinka reguliariąją išraišką.
    # Patikrina, ar eilutė "/ruby/" atitinka reguliariąją išraišką /ruby/.
    /ruby/ === "/ruby/"
    # => true
    
  • Klasė Proc: Iškviečia bloką su dešiniuoju operandų kaip argumentu.
    # Iškviečia bloką su argumentu 5.
    ->(x) { x > 3 } === 5
    # => true
    
  • Klasė Symbol: Palygina simbolį su kita eilute arba simboliu.
    # Palygina simbolį :test su eilute "test".
    :test === "test"
    # => true
    

Daugelyje kitų klasių === elgiasi kaip ==.

Naudojimas case/when:

Išraiška case condition yra lygiavertė kelių === iškvietimų serijai, kur kiekvieno when reikšmė yra === iškvietimas su condition kaip dešiniuoju operandų.

# Lygiavertė su String === value
# Tada Integer === value
case value
when String
  # ...
when Integer
  # ...
end