Я нашел пример и метафору Object#===
operatorare слишком запутанными, теперь я начинаю читать исходный код, но я новичок в C, любой может сказать мне, как анализировать этот код:
VALUE
rb_equal(VALUE obj1, VALUE obj2)
{
VALUE result;
if (obj1 == obj2) return Qtrue;
result = rb_funcall(obj1, id_eq, 1, obj2);
if (RTEST(result)) return Qtrue;
return Qfalse;
}