Sobes.tech
Middle

Ruby-də '===' operatoru nədir?

sobes.tech Süni İntellekt

AI-dan cavab

Ruby-də === (üç bərabər) operatoru case equality operator adlanır.

O, case/when ifadələrində istifadə olunur və sinflər tərəfindən təyin edilir ki, sağ operand sol operand tərəfindən göstərilən "kateqoriya" və ya "aralık"-a aid olub-olmadığını yoxlamaq üçün.

=== operatorunun davranışı sol operandın sinfinə bağlıdır.

Nümunələr:

  • Module sinfi: Sağ operandın modul/klassın nümunəsi və ya törəməsi olub-olmadığını yoxlayır.
    # Sağ operandın String və ya onun törəməsi olub-olmadığını yoxlayır.
    String === "hello"
    # => true
    
  • Range sinfi: Sağ operandın aralıkda olub-olmadığını yoxlayır.
    # 5-in 1..10 aralığında olub-olmadığını yoxlayır.
    (1..10) === 5
    # => true
    
  • Regexp sinfi: Mətnin regex ilə uyğun olub-olmadığını yoxlayır.
    # "/ruby/" mətninin /ruby/ regex ilə uyğun olub-olmadığını yoxlayır.
    /ruby/ === "/ruby/"
    # => true
    
  • Proc sinfi: Bloku çağırır və sağ operandı arqument kimi istifadə edir.
    # Bloku 5 arqumenti ilə çağırır.
    ->(x) { x > 3 } === 5
    # => true
    
  • Symbol sinfi: Simvolu başqa bir mətn və ya simvol ilə müqayisə edir.
    # :test simvolunu "test" mətn ilə müqayisə edir.
    :test === "test"
    # => true
    

Əksər digər sinflərdə === == kimi davranır.

case/when-də tətbiqi:

case condition ifadəsi hər when dəyərinə === çağırışlarının ardıcıllığı ilə bərabərdir və condition sağ operand kimi istifadə olunur.

# String === value ilə eynidir
# Sonra Integer === value
case value
when String
  # ...
when Integer
  # ...
end