问题标签 [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.
javascript - 如何定义 JavaScript 中对象的比较方式
我想定义一个 JavaScript 类,Foo。
我将创建我的 Foo 的“实例”:
我希望我的 Foo 实例可以使用标准 == 相等运算符相互比较:
我找不到办法做到这一点。我以为我对valueOf()
函数有所了解,但这仅在比较的一侧是原始比较时才有用,而不是像上面两者都是对象类型的情况。
我是否错过了类似于 Ruby 的非常简单的东西
java - 为什么 Long.valueOf(0).equals(Integer.valueOf(0)) 为假?
这个问题是由奇怪的 HashMap.put() 行为提示的
我想我理解为什么Map<K,V>.put
需要 aK
但Map<K,V>.get
需要 a Object
,似乎不这样做会破坏太多现有代码。
现在我们进入一个非常容易出错的场景:
Long
如果值在int
范围内并且值相等,则不能通过返回 true 来解决这个问题吗?
c# - C# UnitTest - 如果参数为 null,则 Assert.AreEqual() 不会调用 Equals
我最近偶然发现了谷歌完全无法解释的看似奇怪的行为。
我希望这个测试能够成功。但是,在 Visual Studio 2008 / .NET 3.5 中它失败了。它是打算这样还是一个错误?
c# - C# 使用“as”覆盖 Equals 和用于正确性、灵活性和性能的专用方法
我想知道在 C# 中实现正确、灵活和快速的 Equals 的最佳方法,它几乎可以用于任何类和情况。我认为性能需要一个专门的 Equals(将实际类的对象作为参数)。为了避免代码重复,一般的 Equals 应该调用专门的 Equals。空值检查应该只执行一次,即使在继承的类中也是如此。
我终于想出了这个设计:
重要的想法:
- “as”运算符的用法。这样我们就不必检查一般 Equals 中的空值。错误的类类型会减少为 null,并将在专门的 Equals 中进行排序。
- 在某一点进行空值检查,即使对于派生类也是如此。
- 一个接一个地检查属性提供了一个清晰的结构。
这个概念有缺陷,还是我错过了任何条件?
java - 当equals()基于多个独立字段时的hashCode()方法
我有一个类,其相等性基于 2 个字段,因此如果其中一个字段相等,则此类型的对象被视为相等。如何为这样的 equals() 编写 hashCode() 函数,以便在 equals 返回 true 时保留 hashCode 的一般合同?
我如何为这个类编写一个 hashCode() 函数?我想避免像这样返回一个常量的微不足道的情况:
sql - 等于(=)与 LIKE
使用 SQL 时,使用=
inWHERE
子句而不是有什么好处LIKE
?
不用任何特殊运算符,LIKE
都是=
一样的吧?
c# - 用于 C# 中值相等的自定义类的最强大的 Equals 实现
假设我有一个 Point2 类,我想实现以下 Equals:
这是来自有效的 C# 3 书:
这是不是矫枉过正?
java - 在生成 .equals() 时,有什么理由更喜欢 getClass() 而不是 instanceof?
我正在使用 Eclipse 生成.equals()
and .hashCode()
,并且有一个标记为“使用'instanceof'来比较类型”的选项。默认情况下未选中此选项并用于.getClass()
比较类型。有什么理由我应该更喜欢.getClass()
吗instanceof
?
不使用instanceof
:
使用instanceof
:
我一般勾选instanceof
选项,然后进去去掉“ if (obj == null)
”勾选。(这是多余的,因为空对象总是会失败instanceof
。)有什么理由是个坏主意吗?
java - 找出导致 equals() 返回 false 的原因
如何找出导致 equals() 返回 false 的原因?
我不是在问一个确定的、永远正确的方法,而是在问一些有助于开发过程的东西。目前我必须进入 equals() 调用(通常是它们的树),直到其中一个为假,然后进入它,令人作呕。
我考虑过使用对象图,将其输出到 xml 并比较两个对象。但是,XMLEncoder 需要默认构造函数,jibx 需要预编译,我的项目中没有使用 x-stream 和 simple api。我不介意将单个类甚至一个包复制到我的测试区域并在那里使用它,但是为此导入整个 jar 是不会发生的。
我还考虑过自己构建一个对象图遍历器,我可能仍然会这样做,但我不想开始处理特殊情况(有序集合、非有序集合、地图......)
知道该怎么做吗?
编辑:我知道添加罐子是正常的做事方式。我知道罐子是可重复使用的单元。但是,为此(在我的项目中)需要的官僚机构并不能证明结果是合理的——我会继续调试并介入。
c# - 是否可以通过比较项目的属性来自动处理 List.Contains?
我们可以做一些类似的事情List.Contains(myItem)
来检查列表中某个项目的属性是否等于myItem
.
(我们已经考虑过Contains
和Exists
,类似于:
但无法得到简单的表达。)
我们想要如下简单的东西:
如果至少有一项orderLines[i]
满足,则此方法应自动返回 true:
我们已经实现IEquatable<OrderLine>
了which equals by the Product
property,但找不到从那里开始的方法。