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