gpt4 book ai didi

ruby - 为什么 Ruby 哈希使用 eql?而不是==

转载 作者:数据小太阳 更新时间:2023-10-29 09:03:22 28 4
gpt4 key购买 nike

我在 Ruby 中看到了很多平等的概念。

==
eql?
===
equal?

而且它们都有不同的语义。对我来说应该只有两个,一个是引用相等,另一个是值相等。我不明白为什么 Ruby 需要 eql?===

我找到了 this question这表示区别仅在于值以及值和类型。

具体来说,我不明白为什么 Hash 也需要检查类型(通常我们在 == 方法本身中测试)

最佳答案

Hash 要求它的键必须支持 eql? 因为它内部需要哈希码。

例如,1 == 1.0 为真,而 1.eql? 1.0 为假。 11.0 显然具有不同的哈希码,因此它们不能被视为 Hash 中的等效键。

关于ruby - 为什么 Ruby 哈希使用 eql?而不是==,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29867123/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com