Middle
Šta je operator '===' u Ruby-ju?
sobes.tech АИ
Одговор од АИ
Operator === (trostruko jednako) u Rubyju naziva se operator za jednakost slučaja (case equality operator).
Koristi se u izrazima case/when i definiran je od strane klasa za provjeru pripadnosti desnog operanda "kategoriji" ili "rasponu" kojeg predstavlja lijevi operand.
Ponašanje operatora === ovisi o klasi lijevog operanda.
Primjeri:
- Klasa
Module: Provjerava je li desni operand instanca ili podklasa modula/klase.# Provjerava je li desni operand instanca ili podklasa Stringa. String === "hello" # => true - Klasa
Range: Provjerava je li desni operand unutar raspona.# Provjerava je li 5 unutar raspona 1..10. (1..10) === 5 # => true - Klasa
Regexp: Provjerava odgovara li niz regularnom izrazu.# Provjerava odgovara li niz "/ruby/" regularnom izrazu /ruby/. /ruby/ === "/ruby/" # => true - Klasa
Proc: Poziva blok s desnim operandom kao argumentom.# Poziva blok s argumentom 5. ->(x) { x > 3 } === 5 # => true - Klasa
Symbol: Uspoređuje simbol s drugim nizom ili simbolom.# Uspoređuje simbol :test s nizom "test". :test === "test" # => true
U većini drugih klasa, === se ponaša kao ==.
Primjena u case/when:
Izraz case condition ekvivalentan je nizu poziva === na svakoj vrijednosti when s condition kao desnim operandom.
# Ekvivalentno s String === value
# Zatim Integer === value
case value
when String
# ...
when Integer
# ...
end