首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >==在Ruby语言中做什么?

==在Ruby语言中做什么?
EN

Stack Overflow用户
提问于 2010-08-03 01:27:48
回答 4查看 4.1K关注 0票数 9

在Java语言中,==是最强的等价性(指针相等):a == b总是暗示a.equals(b)。然而,在Ruby语言中,==.equals?

代码语言:javascript
复制
ruby-1.9.2-rc2 > 17 == 17.0
 => true 
ruby-1.9.2-rc2 > 17.equal?(17.0)
 => false

那么,我可以从哪里了解更多关于==的信息呢?当我用它比较两个对象时,我应该期待什么样的检查?

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2010-08-03 01:31:08

简单地说,这是你需要知道的:

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

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

equal?检查两个对象是否是一个相同的对象。

关于这一点的一个很好的博客是here

票数 8
EN

Stack Overflow用户

发布于 2010-08-03 01:32:04

实际上,它们都只是方法,意思是object.==(other_object)等于?表示object.equals?(other_object)

不过,在这种情况下,equals基本上用于散列查找比较,即a_hash1不应该是与a_hash1.0相同的键值对

HTH。-r

票数 1
EN

Stack Overflow用户

发布于 2010-08-03 01:33:54

简单地说,==是一种方法。我认为这解释得很好,here

通常,此方法在后代类中被重写,以提供特定于类的含义。

并给出了一个使用Numeric的示例。

然而,这里有一个陷阱:因为==是左操作数的方法,所以假设a==b的结果与b==a的结果相同并不总是安全的。特别是在a是一个方法调用的情况下,在动态语言中,它不能总是返回相同类型的值。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3390219

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档