==
- это просто метод.Я думаю, что это действительно хорошо объяснено здесь :
Как правило, этот метод переопределяется в классах-потомках для обеспечения специфического для класса значения.
вместе с примером с Numeric
s.
Здесь есть подводный камень: хотя ==
является методом левого операнда, не всегда безопасно предполагать, что результатa==b
должно совпадать с b==a
.Особенно в случаях, когда a
является вызовом метода, который в динамическом языке, таком как Ruby, не всегда должен возвращать значения одного и того же типа.