问题标签 [equals]

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 投票
4 回答
4617 浏览

javascript - 如何定义 JavaScript 中对象的比较方式

我想定义一个 JavaScript 类,Foo。

我将创建我的 Foo 的“实例”:

我希望我的 Foo 实例可以使用标准 == 相等运算符相互比较:

我找不到办法做到这一点。我以为我对valueOf()函数有所了解,但这仅在比较的一侧是原始比较时才有用,而不是像上面两者都是对象类型的情况。

我是否错过了类似于 Ruby 的非常简单的东西

0 投票
7 回答
23755 浏览

java - 为什么 Long.valueOf(0).equals(Integer.valueOf(0)) 为假?

这个问题是由奇怪的 HashMap.put() 行为提示的

我想我理解为什么Map<K,V>.put需要 aKMap<K,V>.get需要 a Object,似乎不这样做会破坏太多现有代码。

现在我们进入一个非常容易出错的场景:

Long如果值在int范围内并且值相等,则不能通过返回 true 来解决这个问题吗?

0 投票
5 回答
16596 浏览

c# - C# UnitTest - 如果参数为 null,则 Assert.AreEqual() 不会调用 Equals

我最近偶然发现了谷歌完全无法解释的看似奇怪的行为。

我希望这个测试能够成功。但是,在 Visual Studio 2008 / .NET 3.5 中它失败了。它是打算这样还是一个错误?

0 投票
1 回答
2338 浏览

c# - C# 使用“as”覆盖 Equals 和用于正确性、灵活性和性能的专用方法

我想知道在 C# 中实现正确、灵活和快速的 Equals 的最佳方法,它几乎可以用于任何类和情况。我认为性能需要一个专门的 Equals(将实际类的对象作为参数)。为了避免代码重复,一般的 Equals 应该调用专门的 Equals。空值检查应该只执行一次,即使在继承的类中也是如此。

我终于想出了这个设计:

重要的想法:

  • “as”运算符的用法。这样我们就不必检查一般 Equals 中的空值。错误的类类型会减少为 null,并将在专门的 Equals 中进行排序。
  • 在某一点进行空值检查,即使对于派生类也是如此。
  • 一个接一个地检查属性提供了一个清晰的结构。

这个概念有缺陷,还是我错过了任何条件?

0 投票
10 回答
4256 浏览

java - 当equals()基于多个独立字段时的hashCode()方法

我有一个类,其相等性基于 2 个字段,因此如果其中一个字段相等,则此类型的对象被视为相等。如何为这样的 equals() 编写 hashCode() 函数,以便在 equals 返回 true 时保留 hashCode 的一般合同?

我如何为这个类编写一个 hashCode() 函数?我想避免像这样返回一个常量的微不足道的情况:

0 投票
16 回答
364682 浏览

sql - 等于(=)与 LIKE

使用 SQL 时,使用=inWHERE子句而不是有什么好处LIKE

不用任何特殊运算符,LIKE都是=一样的吧?

0 投票
4 回答
1827 浏览

c# - 用于 C# 中值相等的自定义类的最强大的 Equals 实现

假设我有一个 Point2 类,我想实现以下 Equals:

这是来自有效的 C# 3 书:

这是不是矫枉过正?

0 投票
11 回答
132651 浏览

java - 在生成 .equals() 时,有什么理由更喜欢 getClass() 而不是 instanceof?

我正在使用 Eclipse 生成.equals()and .hashCode(),并且有一个标记为“使用'instanceof'来比较类型”的选项。默认情况下未选中此选项并用于.getClass()比较类型。有什么理由我应该更喜欢.getClass()instanceof

不使用instanceof

使用instanceof

我一般勾选instanceof选项,然后进去去掉“ if (obj == null)”勾选。(这是多余的,因为空对象总是会失败instanceof。)有什么理由是个坏主意吗?

0 投票
10 回答
1706 浏览

java - 找出导致 equals() 返回 false 的原因

如何找出导致 equals() 返回 false 的原因?

我不是在问一个确定的、永远正确的方法,而是在问一些有助于开发过程的东西。目前我必须进入 equals() 调用(通常是它们的树),直到其中一个为假,然后进入它,令人作呕。

我考虑过使用对象图,将其输出到 xml 并比较两个对象。但是,XMLEncoder 需要默认构造函数,jibx 需要预编译,我的项目中没有使用 x-stream 和 simple api。我不介意将单个类甚至一个包复制到我的测试区域并在那里使用它,但是为此导入整个 jar 是不会发生的。

我还考虑过自己构建一个对象图遍历器,我可能仍然会这样做,但我不想开始处理特殊情况(有序集合、非有序集合、地图......)

知道该怎么做吗?

编辑:我知道添加罐子是正常的做事方式。我知道罐子是可重复使用的单元。但是,为此(在我的项目中)需要的官僚机构并不能证明结果是合理的——我会继续调试并介入。

0 投票
1 回答
485 浏览

c# - 是否可以通过比较项目的属性来自动处理 List.Contains?

我们可以做一些类似的事情List.Contains(myItem)来检查列表中某个项目的属性是否等于myItem.

(我们已经考虑过ContainsExists,类似于:

但无法得到简单的表达。)

我们想要如下简单的东西:

如果至少有一项orderLines[i]满足,则此方法应自动返回 true:

我们已经实现IEquatable<OrderLine>了which equals by the Productproperty,但找不到从那里开始的方法。