Middle
72
questionbank

Что такое оператор '===' в Ruby?

Получайте ответы на вопросы в реальном времени с Sobes Copilot
Ответ от нейросети sobes.tech

Оператор === (тройное равно) в Ruby называется оператором проверки принадлежности (case equality operator).

Он используется в выражениях case/when и определяется классами для проверки, принадлежит ли правый операнд "категории" или "диапазону", представленному левым операндом.

Поведение оператора === зависит от класса левого операнда.

Примеры:

  • Класс Module: Проверяет, является ли правый операнд экземпляром или потомком модуля/класса.
    ruby
  • Класс Range: Проверяет, находится ли правый операнд в диапазоне.
    ruby
  • Класс Regexp: Проверяет, соответствует ли строка регулярному выражению.
    ruby
  • Класс Proc: Вызывает блок с правым операндом в качестве аргумента.
    ruby
  • Класс Symbol: Сравнивает символ с другой строкой или символом.
    ruby

В большинстве других классов === ведет себя как ==.

Применение в case/when:

Выражение case condition эквивалентно серии вызовов === на каждом when значении с condition в качестве правого операнда.

ruby