Middle
Mis on '===' operaator Ruby's?
sobes.tech AI
Vastus AI-lt
Operaator === (kolmekordne võrdusmärk) Ruby keeles nimetatakse kuuluvuskontrolli operaatoriks (case equality operator).
See kasutatakse väljendites case/when ning määratletakse klassides, et kontrollida, kas parem operand kuulub "kategooriasse" või "diapasooni", mida esindab vasakpoolne operand.
Operaatori === käitumine sõltub vasakpoolse operandi klassist.
Näited:
- Klass
Module: Kontrollib, kas parem operand on mooduli või klassi eksemplar või selle järeltulija.# Kontrollib, kas parem operand on `String` või selle järeltulija. String === "hello" # => true - Klass
Range: Kontrollib, kas parem operand asub vahemikus.# Kontrollib, kas 5 on vahemikus 1 kuni 10. (1..10) === 5 # => true - Klass
Regexp: Kontrollib, kas rida vastab regulaaravaldistele.# Kontrollib, kas rida "/ruby/" vastab regulaaravaldistele /ruby/. /ruby/ === "/ruby/" # => true - Klass
Proc: Kutsub välja ploki koos parema operandiga argumentina.# Kutsub välja ploki argumendiga 5. ->(x) { x > 3 } === 5 # => true - Klass
Symbol: Võrdleb sümbolit teise stringi või sümboliga.# Võrdleb sümbolit :test stringiga "test". :test === "test" # => true
Enamikus teistes klassides käitub === nagu ==.
Kasutamine case/when:
Väljend case condition on võrdne mitme === väljakutsega, kus iga when väärtus on === väljakutse koos condition-iga paremal.
# Võrdne String === value
# Seejärel Integer === value
case value
when String
# ...
when Integer
# ...
end