Sobes.tech
Middle

Ruby'da '===' operatori nima?

sobes.tech AI

AIdan javob

Ruby'da === (uchta teng) operatori case equality operator deb nomlanadi.

U case/when ifodalarida ishlatiladi va sinflar tomonidan belgilangan bo'lib, chap operand tomonidan ifodalangan "kategoriya" yoki "oraliq" ga tegishli yoki yo'qligini tekshirish uchun ishlatiladi.

=== operatorining xulqi chap operandning sinfiga bog'liq.

Misollar:

  • Module sinfi: O'ng operand modul/klassning nusxasi yoki uning vorisi ekanligini tekshiradi.
    # O'ng operand String ning nusxasi yoki uning vorisi ekanligini tekshiradi.
    String === "hello"
    # => true
    
  • Range sinfi: O'ng operand oraliqda ekanligini tekshiradi.
    # 5 ning 1..10 oraliqda ekanligini tekshiradi.
    (1..10) === 5
    # => true
    
  • Regexp sinfi: Matnning regex bilan mos kelishini tekshiradi.
    # "/ruby/" matnining /ruby/ regex bilan mos kelishini tekshiradi.
    /ruby/ === "/ruby/"
    # => true
    
  • Proc sinfi: Blokni o'ng operand bilan chaqiradi.
    # Blokni 5 argument bilan chaqiradi.
    ->(x) { x > 3 } === 5
    # => true
    
  • Symbol sinfi: Belgiyni boshqa matn yoki belgi bilan solishtiradi.
    # :test belgisini "test" matni bilan solishtiradi.
    :test === "test"
    # => true
    

Ko'pchilik boshqa sinflarda === == kabi xulqda bo'ladi.

case/whenda qo'llanilishi:

case condition ifodasi har bir when qiymatiga === chaqiruvlarining ketma-ketligiga teng bo'lib, condition o'ng operand sifatida ishlatiladi.

# String === value ga teng
# Keyin Integer === value
case value
when String
  # ...
when Integer
  # ...
end