在Java中,
==
是最强的等号(指针相等): a == b
总是意味着 a.equals(b)
。然而,在Ruby中,==
弱于 .equals?
:ruby-1.9.2-rc2 > 17 == 17.0
=> true
ruby-1.9.2-rc2 > 17.equal?(17.0)
=> false
那么,我应该在哪里了解更多关于==
的内容呢?当我使用它来比较两个对象时,我应该期待什么样的检查呢?
eq
,eql
,equal
,equalp
和=
。虽然有更好命名的操作符如string-equal
和tree-equal
。 - Cristian Sanchez==
来比较两个对象?但是在Ruby中,甚至5
也是一个对象...那么什么情况下可以安全地使用==
进行比较呢?字符串和数字肯定可以。那数组呢?哈希表呢? - Trevor Burnham