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