Sobes.tech
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