问题标签 [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 投票
2 回答
1691 浏览

ruby-on-rails - Ruby on Rails:作为参数的“等于”符号是什么意思?

我一直在使用的一些开源将以下行作为函数声明:

def parse_query(query=nil, options={}, models=nil)

“等号”符号对语句有什么影响?它只是使参数可选吗?

0 投票
5 回答
9233 浏览

c# - 如何在 C# 中快速检查两个数据传输对象是否具有相同的属性?

我有这些数据传输对象:

我不想写

有没有更快的方法来测试两个只有属性的对象是否具有相同的值(不需要一行代码或每个属性一个逻辑表达式?)

切换到结构不是一种选择。

0 投票
12 回答
82215 浏览

java - Java与两个字符串的==比较是假的?

字符串部分是 String[6]:

但是当我比较parts[0]"231"

上面的结果是假的,

我很困惑,所以有人能告诉我为什么吗?

0 投票
2 回答
5296 浏览

c# - 我应该如何实现 Object.GetHashCode() 来实现复杂的相等性?

基本上,到目前为止,我有以下内容:

所以,问题是这样的:我有一个非必填字段Guid,它是一个唯一标识符。如果没有设置,那么我需要尝试根据不太准确的指标来确定相等性,以尝试确定两个对象是否相等。这工作正常,但它使GetHashCode()混乱......我应该怎么做?一个天真的实现是这样的:

但是这两种类型的哈希冲突的可能性有多大?当然,我不希望它是1 in 2 ** 32。这是一个坏主意,如果是这样,我应该怎么做?

0 投票
3 回答
13552 浏览

javascript - 什么时候应该在 javascript 中使用 === vs ==、!== vs != 等?

可能重复:
Javascript === vs ==:我使用哪个“相等”运算符有关系吗?

===vs==!==vs和有什么不一样!=

你应该什么时候使用每一个?

0 投票
10 回答
20647 浏览

java - 当 "" == s 为假但 "".equals(s) 为真时

编辑 感谢您的及时回复。请看看真正的问题是什么。这次我把它变得大胆了。

我确实理解 == 和 .equals 之间的区别。所以,这不是我的问题(我实际上为此添加了一些上下文)


我正在对空字符串执行以下验证:

过去数据库中获取值或从另一个节点反序列化对象时,此测试失败,因为两个字符串实例确实是不同的对象引用,尽管它们包含相同的数据。

所以解决这些情况的方法是

我很好。这很清楚。

今天再次发生这种情况,但让我感到困惑,因为这次应用程序是一个非常小的独立应用程序,根本不使用网络,所以没有从数据库中获取新字符串,也没有从另一个节点反序列化。

所以问题是:


其他情况下:

对于本地独立应用程序?

我很确定代码中没有使用new String() 。

字符串引用可能是“”的唯一方法是因为它是直接在代码中分配的“”(或者这就是我的想法),例如:

不知何故(在阅读了更多代码之后,我有了一个线索)创建了两个不同的空字符串对象引用,我想知道如何

jjnguys 回答中的更多内容:

字节!

编辑:结论

我找到了原因。

在 jjnguy 建议之后,我能够以不同的眼光看待代码。

有罪的方法:StringBuilder.toString()

分配并初始化一个新的 String 对象以包含该对象当前表示的字符序列。

嗬!...

谜团已揭开。

该代码使用 StringBuilder 来处理不断增长的字符串。事实证明,在某些时候有人这样做了:

并使用

ps 我最近是不是看太多 CodingHorror 了?或者为什么我觉得有必要在这里添加一些有趣的动物图片?

0 投票
2 回答
24881 浏览

c# - Linq:连接中 == 和 equals 有什么区别?

我一直想知道为什么equalslinq 连接中有一个关键字而不是使用 == 运算符。

代替

[编辑]改写了问题并修改了示例。

0 投票
3 回答
1208 浏览

c# - 如何覆盖特定 NHibernate 类的等于

我正在努力弄清楚我应该如何覆盖 equals 并为我正在使用 NHibernate 编写的类获取哈希码。

基本业务场景是用户不能在 90 天内重复使用相同的密码。

所以我有一个“用户”,它有很多“历史密码”......用户类很简单,因为我只是在等号中使用登录名。下面是我的 HistoricalPassword 类。

我会从商业角度说 User 和 ChangeDate 的组合会给我平等。但是......在 equals 方法中引用用户似乎不正确(因为一件事会导致延迟加载发生)......而且从我使用 HistoricalPasswordId 的 PK 阅读的内容来看,这是一个禁忌也是。

任何人都可以就如何为此覆盖 equals 提供一些建议吗?

编辑 ::: 我想我问这个问题的方式可能有点误导。对于如何执行确保密码不被重用的业务规则,我并不感到困惑……也不知道我如何知道两个密码是否相等或是否安全。我真正想知道的是与 NHibernate 相关的实体级别,我将如何覆盖该对象的 Equals,以便 NHibenate 不会在会话和/或缓存中出现欺骗。根据 NHibernate 文档(https://www.hibernate.org/hib_docs/nhibernate/html/persistent-classes.html),我应该使用业务密钥相等来覆盖equals。在这种情况下,我只是不确定在比较中使用 User 的引用对象是否是一个好主意。

0 投票
3 回答
3889 浏览

sql - MYSQL 中的单等号

我想知道为什么 MYSQL 在条件语句中使用单个等号而不是更典型的两个等号。这有技术/历史原因吗?谢谢。

0 投票
4 回答
733 浏览

.net - 当空间大于 32 位时,如何实现 GetHashCode 兼容的 Equals 方法?

在 .NET 中,您需要 Equals(object) 和 GetHashCode() 兼容。但有时你不能:

因为数据密度大于 32 位,并且 GetHashCode 返回一个 Int32,所以您将有 3 个解决方案(假设正确实现了 GetHashCode):

  1. 避免代码重复 因为不正确而被丢弃

    /li>
  2. 与 GetHashCode() 分开实现 Equals

    /li>
  3. 实现精度更高的GetHashCode64,覆盖的GetHashCode(32位)会返回(int)GetHashCode64(),Equals会返回this.GetHashCode64() == other.GetHashCode64()

你会实施哪一个?

第一个解决方案不精确,但更清洁。第二个选项看起来很干净,但是当类具有更多属性时会变得非常复杂。第三种选择是妥协。