在Ruby中==做什么?

Tre*_*ham 9 ruby equals

在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
Run Code Online (Sandbox Code Playgroud)

那么,我在哪里可以了解更多信息==?当我将两个对象与它进行比较时,我应该期待什么样的检查?

enn*_*ler 8

简而言之,这是您需要知道的:

==比较检查两个值是否相等

eql? 检查两个值是否相等且类型相同

equal? 检查两件事是否是同一个对象.

关于这个的好博客就在这里.

  • 好像他们可以为eql选择更好的方法名称?和平等? (2认同)