1.BasicObject中定义了 == 和equal?这两个方法,两个方法等价,用来比较两个对象是否是同一个对象,是的话结果就为true. 既然两者相同,为何要定义两个呢?只是为了再命名一个别名吗?官方解释是==用于给子类重载,equal?永不重载. 结论:①.== 等价于 equal? ②.== 用于给子类重载,equal?永不重载 // BasicObject#equal? VALUE rb_obj_equal(VALUE obj1, VALUE obj2) { if (obj1 == o…