Middle
Оператор '===' дар Ruby чист?
sobes.tech AI
Ҷавоб аз AI
Ҳамла === (учтўқ равшанлик) дар Ruby номида мешавад оператори баробарии ҳолат (case equality operator).
Он дар изразҳои case/when истифода мешавад ва аз ҷониби синфҳо барои санҷидани он ки оё операнди рост ба "категория" ё "ҳадди ақал" ки аз ҷониби операнди чап намоиш дода шудааст, тааллуқ дорад.
Равоншавии оператори === аз синфи операнди чап вобаста аст.
Масалан:
- Синфи
Module: Санҷед, ки оё операнди рост намуна ё фарзанди модул/класа мебошад.# Санҷед, ки оё операнди рост намунаи String ё фарзанди он мебошад. String === "hello" # => true - Синфи
Range: Санҷед, ки оё операнди рост дар диапазон аст.# Санҷед, ки оё 5 дар диапазони 1..10 аст. (1..10) === 5 # => true - Синфи
Regexp: Санҷед, ки оё матн мувофиқ ба ибораҳои муқарраршуда мебошад.# Санҷед, ки оё матни "/ruby/" ба /ruby/ мувофиқ аст. /ruby/ === "/ruby/" # => true - Синфи
Proc: Блокро бо операнди рост ҳамчун аргумент даъват мекунад.# Блокро бо аргументи 5 даъват мекунад. ->(x) { x > 3 } === 5 # => true - Синфи
Symbol: Символро бо матн ё символи дигар муқоиса мекунад.# Символи :test-ро бо матни "test" муқоиса мекунад. :test === "test" # => true
Дар бисёр синфҳои дигар, === ҳамчун == амал мекунад.
Истифода дар case/when:
Ифодаи case condition баробар ба силсилавораҳои даъвати === дар ҳар арзиш барои when бо condition ҳамчун операнди рост.
# Баробар бо String === value
# Пас Integer === value
case value
when String
# ...
when Integer
# ...
end