问题标签 [equals-operator]

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 投票
1 回答
147 浏览

r - 矢量版本/矢量化 R 中的等于循环

我有一个值向量,称为 X,还有一个数据框,称为 dat.fram。我想运行“grep”或“which”之类的东西来查找与 X 的每个元素匹配的 dat.fram[,3] 的所有索引。

这是我下面的非常低效的 for 循环。请注意,X 中有许多观察值,并且“match.ind”的每个成员都可以有零个或多个匹配项。此外,dat.fram 有超过 100 万个观测值。有没有办法在 R 中使用向量函数来提高这个过程的效率?

最终,我需要一个列表,因为我会将列表传递给另一个函数,该函数将从 dat.fram 检索适当的值。

代码:

0 投票
4 回答
141 浏览

php - 当 $x 和 $y “不相等”时,“$x == $y”在 PHP 中为真?

几十年来,我一直是一名开发人员——使用多种编程语言。我无法在 PHP 中使用非常简单直接的“if”语句:

即使 $groupminc 和 $groupmaxc 显然不相等,我也会发生 AFTER1 。

0 投票
4 回答
67277 浏览

java - == 检查布尔值是否完全相等?- 爪哇

所以我听说如果我将 2 个字符串与 == 进行比较,那么只有当它们都引用同一个对象/实例时,我才会返回 true。那是字符串。布尔值呢?

0 投票
1 回答
908 浏览

linq - Linq To Sql Where 不调用重写的 Equals

我目前正在做一个项目,我将对类似的非数据库(本讨论的服务层对象)对象和通过 LinqToSql 从数据库检索到的对象进行大量比较。为了便于讨论,假设我有一个服务层 Product 对象,其中包含一个在数据库中表示的字符串字段。但是,在数据库中,还有一个主键 Id 并没有在服务层中表示出来。

因此(就像我经常为单元测试等所做的那样),我覆盖了 Equals(Object)、Equals(Product) 和 GetHashCode 并实现了 IEquatable,并期望我能够编写如下代码:

等等。

Equals 覆盖已经过测试并且可以工作。这些对象是可变的,因此通常的警告适用于 GetHashCode 覆盖。但是,出于本示例的目的,除了 LtS 之外,不会修改对象,并且可以将其设为只读。

这是一个简单的测试:

  • 在内存中创建一个测试对象并提交到 LtS 上下文。通过提交,测试对象填充了一些自动生成的字段。
  • 在内存中创建另一个相同的测试对象(单独参考)
  • 尝试使用第二个对象作为标准从数据库中检索第一个对象。(见上面的代码行)。

    /li>

Retrieve 的简化版本(删除的只是参数检查等):

注意:重写的 Equals 方法知道不关心数据库中自动生成的字段,只查看服务层中表示的字符串。

以下是我观察到的结果: 在 testProduct1 上检索成功(毫不奇怪,通过引用相等) 在 testProduct2 上检索失败(null) 在 Retrieve 方法中调用的被覆盖的 Equals 方法在任何一个 Retrieve 调用期间都不会被命中 但是,被覆盖的 Equals 方法被多次调用通过 SubmitChanges 上的上下文(在数据库中创建第一个测试对象时调用)(按预期工作)。

静态地,编译器知道被发射的对象的类型并且能够解析该类型。

所以我的具体问题:

  • 我是否试图做一些不明智的事情?似乎是对 Equals 的直接使用。
  • 第一个问题的推论:处理 linq to sql 相等性检查的替代建议,同时将比较详细信息保留在对象而不是存储库中
  • 为什么我可能观察到在 SubmitChanges 中解决了 Equals 方法,但在 Where 子句中没有解决?
  • 我对理解和让我的 Equals 调用工作一样感兴趣。但我也很想学习如何使这种“模式”发挥作用,而不仅仅是理解为什么它在 LtS 和 C# 的竞赛中看起来是一种“反模式”。

请不要建议我直接使用 Where 语句在上下文中进行过滤。显然,我可以删除 Equals 调用并执行此操作。但是,其他一些对象(此处未显示)很大且有点复杂。为了维护和清晰起见,我想知道如何将自己与另一个自己类型的地方进行比较,最好是作为所讨论对象的一部分。

我尝试过的其他一些没有改变行为的事情:

  • 重载并使用 == 代替
  • 将 lambda 变量转换为类型 p => (Product)p
  • 首先获取一个 IQueryable 对象并在 Where 子句中调用 Equals

我尝试过的其他一些不起作用的方法:

  • 创建静态 ProductEquals(Product first, Product second) 方法:System.NotSupportedException:不支持对 SQL 的转换。

感谢 StackOverflow 的贡献者!

关于可能的重复:我已经阅读了大约 10 个其他问题。我想要一个指向完全重复的指针,但大多数似乎并没有直接解决 LinqToSql 的奇怪之处。

0 投票
1 回答
1794 浏览

c# - 在泛型方法中检查非类约束类型参数的实例是否为空

我目前有一个通用方法,我想在处理参数之前对参数进行一些验证。具体来说,如果类型参数的实例T是引用类型,我想检查它是否为空,如果为空则null抛出一个ArgumentNullException

类似于以下内容:

请注意,我不希望使用class约束来约束我的类型参数。

我想我可以使用Marc Gravell关于“如何将泛型类型与其默认值进行比较?”的回答。,并像这样使用EqualityComparer<T>

但它在调用时给出了一个非常模棱两可的错误Equals

成员 'object.Equals(object, object)' 不能通过实例引用访问;改为使用类型名称来限定它

如何检查T不受值或引用类型约束null的实例?T

0 投票
1 回答
319 浏览

c# - 为 null 重载 == 运算符

我有一个名为Message重载这些运算符的类:

我希望==and运算符继续比较and but!=以外的类型的引用,StringMessage

给了我这个:

以下方法或属性之间的调用不明确:'Message.operator ==(Message, Message)' 和 'Message.operator ==(Message, string)'

我知道这是因为MessageString都是引用类型并且它们都可以是null,但我希望能够使用==opreator 来检查消息是否为空。

我可以==为空值重载吗?我尝试重载它object并调用object.ReferenceEquals(object, object)重载,但这没有帮助。

0 投票
6 回答
1600 浏览

java - 实现 equals() 方法设计模式

是否有任何设计模式(或成语)有助于equals()在 Java 中实现方法?

这项任务并不难,但在大多数情况下,它几乎是一样的......这就是为什么我猜有一个模式,但我没有找到它。

我选择了这个方法:generate equals() method in Eclipse但是......我找到了一个好方法(在 AbstractList 中)来使生成的代码更好:

而不是生成:

0 投票
4 回答
159 浏览

c# - 重复拳击做出不同的参考?

我试着理解这段代码:

  1. 每个新的拳击都对对象 b 进行不同的引用?
  2. 如果 1. 是真的,为什么o.Equals(b)true
  3. 如果Equals不检查引用,为什么o.Equals(3)false

谢谢。

0 投票
5 回答
110 浏览

equals - var=1 和 var=1 的区别

var=1 实际上与 var = 1 有何不同?这些差异在哪些语言中真正重要或不重要?

0 投票
2 回答
2672 浏览

c++ - C++ 等于运算符

我有以下等于运算符:

我也试过:

在我的主要方法中,我有:

我的程序不断输出“损坏”,这表明 dTest0 和 dTest1 实际上是相等的......我哪里出错了?

附加:如果我使用x.getHours == y.getHours...它在下面放一条红线"."并说:“错误:指向绑定函数的指针只能用于调用函数”。

任何意见,将不胜感激。谢谢。