1、equal?
equal?由Object定义,用于比较两个对象引用的相等性。
2、==
大多数类重新定义了了此操作符,它用于比较对象的内容是否相等。(!=定义了其相反的操作)
3、eql?
严格意义上的相等,即不允许自动类型转化。
4、===
条件相等,用于测试case语句的某个值是否和when语句中的值相同。在Object中定义
一个===,其实他是调用的==方法,
<1>在Range中重新定义了===,用于判断某个值是否在一个范围中。
<2>在Regexp 中重新定义了 === ,用于测试某个表达式是否匹配Regexp。
<3>在Class类中也重新定义了===方法,用于测试某个实例是否属于此类。
5、注意
Java程序员请注意,在ruby中==和equal和Java中的正好相反。