В Ruby ===
не является более строгой версией ==
, как в некоторых других языках.
Метод ===
имеет несколько значений:
Членство:
(1..10) === 5 # => true
Проверка, является ли аргумент экземпляром получателя:
p MyObject.new.class === MyObject.new # true; it's the same as
p MyObject.new.is_a? MyObject
Соответствие регулярному выражению:
/\w+/ === "Ruby"
Операторы Case:
year = 2011
case year
when 1901..2000
puts 'Second millennium'
when 2001..2999
puts 'Third millennium'
end
Другие значения, см. ri ===
MyObject.new.class == MyObject
- это обычный тест на равенство (MyObject - это объект класса, а MyObject.new.class - это тот же объект класса)