问题标签 [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.
c# - .NET 字典具有相同的键和值,但不“相等”
此测试失败:
我对 a 的Dictionary
工作方式有误解吗?
我正在寻找 Java 等价物.equals()
,而不是试图检查引用相等性。
.net - CLR JIT 优化违反因果关系?
我正在为一位同事写一个有启发性的示例,向他展示为什么测试浮点数是否相等通常是一个坏主意。我使用的示例是添加 0.1 十次,并与 1.0(我在介绍性数字课程中展示的那个)进行比较。我惊讶地发现这两个结果是相等的(代码+输出)。
一些调查表明,这个结果不能被依赖(很像浮动平等)。我发现最令人惊讶的是,在其他代码之后添加代码可能会改变计算结果(代码+输出)。请注意,此示例具有完全相同的代码和 IL,但多了一行 C#。
我知道我不应该在浮点数上使用相等,因此不应该太在意这一点,但我发现这非常令人惊讶,就像我向所有人展示过的一样。在执行计算后做一些事情会改变前面计算的值?我不认为这是人们通常想到的计算模型。
我并没有完全被难住,假设在“相等”情况下发生某种优化会改变计算结果(在调试模式下构建可以防止“相等”情况),这似乎是安全的。显然,当 CLR 发现它稍后需要对浮点数进行装箱时,就会放弃优化。
我搜索了一下,但找不到这种行为的原因。任何人都可以提示我吗?
ruby - 在 Ruby 中,为什么等于 nil ("Date.new == nil") 返回 nil?
今天在编写一些 rspec 时,我遇到了一些将日期(和时间)实例与 nil 进行比较的意外行为。这是一个使用原始 ruby 的示例(没有 Rails 或其他库):
到目前为止,一切都很好,对吧?
Date 确实实现了自己的 ===,效果很好:
是否有任何解释为什么会发生这种情况或为什么这是所需的行为?== 似乎是从 Comparable.== 实现的,但是关于它的文档没有给出任何迹象表明它会返回 nil。对此的设计决定是什么?
更新!在 1.9.2 中情况并非如此:
c++ - 比较相等时可以使用`==`吗?
比较相等时可以使用==
吗?
例如:
如果检查是否相等,您应该使用:
如果使用浮点数,情况会改变吗?
scala - Scala中的等式关系
我刚刚偶然发现了 Tony Morris 的一篇关于 Java 的博客文章以及该语言的一个基本问题:为集合定义定制的相等关系。我认为这是一件大事,并想知道是否有一些 scala 解决方案。
经典问题体现在对交易的思考中。假设我进行了两次 +100 沃达丰股票 @150p 的交易。这两个交易是平等的,是吗?除了他们不是同一个行业。在一个正常的现实世界系统的情况下,具有持久性或序列化,我不能依靠身份来告诉我两个引用是否指向同一个交易!
所以我想要的是能够创建一个集合,我可以将 Equality-relation 传递给:
我将如何以有效的方式实现我的集合(除非EqualityRelation
还定义了一种hash
机制)?
所以问题是:
- 有没有提供这种能力的图书馆?
- 有没有办法在 Scala 中巧妙地做到这一点?
似乎使用隐式,添加到现有的 scalaSet
类型将是一件很容易的事情。
c# - NHibernate Equality:如何确保从许多“相等”的 .NET 对象中只保留一行?
我怎样才能通过 NHibernate 获得以下测试?
我认为只需覆盖实体类中的 Equals 和 GetHashCode 就足以让它按照我想要的方式工作。显然,对于非常微不足道的“点”对象,为相同的坐标保留多行是愚蠢的。我有两个坐标相同的点对象,我希望它们只保留到数据库中的一行。
我的点课看起来像这样:
java - 为什么我在 java 中的布尔测试总是失败?
我正在尝试进行布尔测试,以便如果其中一个轮胎压力低于 35 或超过 45,系统会输出“充气不良”。
在我的课堂上,我必须使用布尔值,这是我尝试过的。然而,返回的布尔值始终为真。我不明白为什么。
c++ - 比较 C 中 char[] 的相等性
我有两个变量:
我想检查这两个是否相等......使用charTime == buf
不起作用。
我应该使用什么,有人可以解释为什么使用==
不起作用吗?
这个动作在 C 和 C++ 中会有所不同吗?
null - 空字段上的GetHashCode?
如何处理GetHashCode
函数中的空字段?