问题标签 [equality]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
6 回答
17813 浏览

c# - .NET 字典具有相同的键和值,但不“相等”

此测试失败:

我对 a 的Dictionary工作方式有误解吗?

我正在寻找 Java 等价物.equals(),而不是试图检查引用相等性。

0 投票
4 回答
1512 浏览

.net - CLR JIT 优化违反因果关系?

我正在为一位同事写一个有启发性的示例,向他展示为什么测试浮点数是否相等通常是一个坏主意。我使用的示例是添加 0.1 十次,并与 1.0(我在介绍性数字课程中展示的那个)进行比较。我惊讶地发现这两个结果是相等的(代码+输出)。

一些调查表明,这个结果不能被依赖(很像浮动平等)。我发现最令人惊讶的是,在其他代码之后添加代码可能会改变计算结果(代码+输出)。请注意,此示例具有完全相同的代码和 IL,但多了一行 C#。

我知道我不应该在浮点数上使用相等,因此不应该太在意这一点,但我发现这非常令人惊讶,就像我向所有人展示过的一样。在执行计算后做一些事情会改变前面计算的值?我不认为这是人们通常想到的计算模型。

我并没有完全被难住,假设在“相等”情况下发生某种优化会改变计算结果(在调试模式下构建可以防止“相等”情况),这似乎是安全的。显然,当 CLR 发现它稍后需要对浮点数进行装箱时,就会放弃优化。

我搜索了一下,但找不到这种行为的原因。任何人都可以提示我吗?

0 投票
4 回答
3737 浏览

ruby - 在 Ruby 中,为什么等于 nil ("Date.new == nil") 返回 nil?

今天在编写一些 rspec 时,我遇到了一些将日期(和时间)实例与 nil 进行比较的意外行为。这是一个使用原始 ruby​​ 的示例(没有 Rails 或其他库):

到目前为止,一切都很好,对吧?

Date 确实实现了自己的 ===,效果很好:

是否有任何解释为什么会发生这种情况或为什么这是所需的行为?== 似乎是从 Comparable.== 实现的,但是关于它的文档没有给出任何迹象表明它会返回 nil。对此的设计决定是什么?

更新!在 1.9.2 中情况并非如此:

0 投票
6 回答
909 浏览

c++ - 比较相等时可以使用`==`吗?

比较相等时可以使用==吗?

例如:

如果检查是否相等,您应该使用:

如果使用浮点数,情况会改变吗?

0 投票
4 回答
1108 浏览

c++ - 没有 RTTI 的类型相等性测试

BC都源自A。我希望能够在不使用 RTTI的情况下测试派生类的任何两个实例是否A是同一类的实例,即是否A* fooA* bar指向实例。B我目前的解决方案是这样的:

使用这种方法,operator==可以简单地测试first.code() == second.code()。我想identity从派生类中删除文字并让代码自动找到A,因此并非所有派生类都必须重复这个习语。同样,我强烈不希望使用 RTTI。有没有办法做到这一点?

注意:我看过最近的问题[1][2],这不是重复的。那些张贴者想要测试他们的派生类的内容;我只是想测试身份

0 投票
3 回答
3346 浏览

scala - Scala中的等式关系

我刚刚偶然发现了 Tony Morris 的一篇关于 Java 的博客文章以及该语言的一个基本问题:为集合定义定制的相等关系。我认为这是一件大事,并想知道是否有一些 scala 解决方案。

经典问题体现在对交易的思考中。假设我进行了两次 +100 沃达丰股票 @150p 的交易。这两个交易是平等的,是吗?除了他们不是同一个行业。在一个正常的现实世界系统的情况下,具有持久性或序列化,我不能依靠身份来告诉我两个引用是否指向同一个交易

所以我想要的是能够创建一个集合,我可以将 Equality-relation 传递给:

我将如何以有效的方式实现我的集合(除非EqualityRelation还定义了一种hash机制)?

所以问题是:

  • 有没有提供这种能力的图书馆?
  • 有没有办法在 Scala 中巧妙地做到这一点?

似乎使用隐式,添加到现有的 scalaSet类型将是一件很容易的事情。

0 投票
4 回答
667 浏览

c# - NHibernate Equality:如何确保从许多“相等”的 .NET 对象中只保留一行?

我怎样才能通过 NHibernate 获得以下测试?

我认为只需覆盖实体类中的 Equals 和 GetHashCode 就足以让它按照我想要的方式工作。显然,对于非常微不足道的“点”对象,为相同的坐标保留多行是愚蠢的。我有两个坐标相同的点对象,我希望它们只保留到数据库中的一行。

我的点课看起来像这样:

0 投票
6 回答
2998 浏览

java - 为什么我在 java 中的布尔测试总是失败?

我正在尝试进行布尔测试,以便如果其中一个轮胎压力低于 35 或超过 45,系统会输出“充气不良”。

在我的课堂上,我必须使用布尔值,这是我尝试过的。然而,返回的布尔值始终为真。我不明白为什么。

0 投票
5 回答
36158 浏览

c++ - 比较 C 中 char[] 的相等性

我有两个变量:

我想检查这两个是否相等......使用charTime == buf不起作用。

我应该使用什么,有人可以解释为什么使用==不起作用吗?

这个动作在 C 和 C++ 中会有所不同吗?

0 投票
2 回答
17447 浏览

null - 空字段上的GetHashCode?

如何处理GetHashCode函数中的空字段?