问题标签 [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 回答
171 浏览

c# - MSDN 代码示例:为什么在调用静态 Object.Equals 之前检查 null?

在微软关于IEquatable<T>.Equals方法的 MSDN 库文章 ( http://msdn.microsoft.com/en-us/library/ms131190.aspx ) 中提供了一个示例来演示如何覆盖 Equals 和 Equality 运算符。它看起来像这样:

我的注意力被这一行吸引了:if ((object)person1 == null || ((object)person2) == null) return Object.Equals(person1, person2);

据我了解,静态 Object.Equals 会自动检查 null 的参数。为什么在调用它之前要再次检查 null ?有指导方针吗?

我会像这样简单地实现它:

或者也许是这样:

基于同一文档中的此引用:“如果您这样做 override Object.Equals(Object),则在调用您的类上的方法时也会调用您的重写实现static Equals(System.Object, System.Object)

更新:

我在 中发现了一个可能的错误public bool Equals(Person other),上面写着:other == null哪里==重载了!虽然结果是正确的,但还有一层额外的间接性。我相信它应该是(object)other == null

0 投票
2 回答
618 浏览

c++ - 为什么调用赋值运算符会触发销毁函数?

我有一个名为 Matrix 的类,带有二维指针 bool** 矩阵。

看看这段代码:

我在我的主函数中调用了我的 = 运算符,如下所示:

析构函数是这样的:

当我在 xcode 中运行我的程序时,我得到:

它看起来不错,但是当我像这样更改 = 运算符函数时:

我得到这个结果:

谁能向我解释为什么析构函数在后一个代码中触发得更快?!我该如何预防

先感谢您

0 投票
3 回答
5152 浏览

java - if else语句与字符串比较java

我对 java 代码很陌生,以前只真正使用过 C++。我正在尝试比较两个字符串变量,如果它们匹配,则将一个新变量设置为字符串答案,否则新变量将为空。

例如

但是当我尝试它时这似乎不起作用,我认为逻辑是正确的......有什么帮助吗?

0 投票
2 回答
11713 浏览

scala - 对这个带有 & 不带 = 的代码片段返回类型感到非常困惑

  1. 为什么返回类型不同?
  2. 我真的不在乎返回类型。我想调用 getX 并添加 - 我想做像closure1(4).getX 这样的事情 - 这是非法的。我怎么做 ?
0 投票
1 回答
88 浏览

javascript - Changing == to === in if(window.location == 'x') causes the block not to execute

I'm checking over my code for uses of == instead of ===, but changing this line:

To this:

Results in the block no longer being executed.

What is the correct approach?

0 投票
2 回答
95 浏览

c++ - C ++:调用运算符的原始定义等于

我正在重载运算符等于(==),如下所示:

但是,问题出现在 line return (str1 == str2) 上,因为 operator == 被递归调用。那么,如何调用运算符的原始定义等于(而不是重载)?

此致

0 投票
2 回答
152 浏览

c# - 如何在 C# 中可靠地检查空值

如何在 C# 中可靠地检查空值,包括重载运算符==!=?

我知道以下选项可用:

  • x != null重载运算符时不可靠。
  • null != x重载运算符时不可靠。
  • (x ?? null) != null类型仍然是MyClass,因此在重载运算符时不可靠。
  • object.ReferenceEquals(x, null)应该可以。
  • x.Equals(null)不会工作(当然,因为我们调用了一个方法 on x,它可以是null
  • object o = x; o != null应该使用object's operator !=,所以它应该可以工作。
  • 还有什么?

那么,就可靠性、速度、可读性而言,哪种方法最好,哪种方法最惯用呢?Microsoft 是否在其文档/编码标准/其他内容中推荐任何方法?

0 投票
2 回答
597 浏览

angularjs - Angular 两个 $scope 和 splice。如何将一个等同于另一个 $scope?

问题是这样的:

返回:

需要:

为什么会这样?

更新: 解决方案:到处使用angular.copy($scope.val) 我的代码很糟糕:

对比

0 投票
2 回答
82 浏览

c++ - 在方法c ++中设置const字符串相等?

我在使用该removeItem方法时遇到问题,因为在调用它之后立即发生错误。在这种方法中,我试图将sku参数中的数组成员设置为nullptr并“删除”它。我认为这与均衡有关:if(sku == shoppingList[i]->getSKU()). 或者可能与const. 该数组具有指向类型对象的指针Product

这属于 CustomerOrder.cpp

这属于 Product.h

这属于 Product.cpp

0 投票
1 回答
93 浏览

regex - 以 = 符号结尾的单词之间的正则表达式匹配(LAN= 和 TYP=)

您好,我正在尝试创建一个匹配两个单词之间所有单词的正则表达式。到目前为止,我的工作是:

文本文件包含以下内容:

TYP=123456789_AD1

DES=xyzer

TXT=bXper xyer

TXT=c

Lorem ipsum dolor sit amet,consectetuer adipiscing elit。Aenean commodo ligula eget dolor。埃涅马萨。Cum sociis natoque penatibus et magnis disparturient montes

TXT=dsome 文本

TXT=e 一些文字

TXT=我

如您所见,有时文本就在单词(leftWord 和 rightWord)之后,而我正在努力解决这个问题。