问题标签 [operator-keyword]

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 回答
1071 浏览

c# - C# 隐式转换为列表返回运行时错误

我有一个类似于以下使用内部列表的类:

当我尝试传递MyList<object>给一个接受 的函数时List<object>,我得到一个 InvalidCastException。为什么?

0 投票
2 回答
3793 浏览

c++ - 在 C++ 中显式调用原始运算符函数

另一方面,这有效 -

  • 甚至可以直接调用原始类型(如 int)的 operator+(和其他运算符)吗?
  • 如果是,如何?
  • 如果没有,是否有 C++ 参考措辞明确表明这是不可行的?
0 投票
6 回答
938 浏览

php - !== 和 === 在 PHP 中是什么意思?

可能的重复:
相等(== 双等号)和身份(=== 三等号)比较运算符有何不同?
参考 - 这个符号在 PHP 中是什么意思?
php 不等于 != 和 !==

此代码段中的!==和运算符是什么?===

0 投票
2 回答
6432 浏览

prolog - Prolog GNU - Univ 运算符?它的解释

所以univ运算符。我不太明白。

例如这个:

这是在做什么?这看起来看看另一个谓词是否为真。我不明白“..”是做什么的。

如果没有 univ 运算符,你将如何重写它?

0 投票
2 回答
599 浏览

c# - 使用 C# 类型表示度量单位

我试图通过将 double 包装到结构中来获得我所谓的测量单位系统。我有 C# 结构,如 Meter、Second、Degree 等。我最初的想法是,在编译器被内联后,我将获得与使用 double 相同的性能。

我的显式和隐式运算符简单明了,编译器实际上内联了它们,但是使用 Meter 和 Second 的代码比使用 double 的相同代码慢 10 倍。

我的问题是:如果 C# 编译器无论如何都内联所有内容,为什么不能使使用 Second 的代码与使用 double 的代码一样优化?

二是定义如下:

更新:

我没有问 struct 是否适合这里。确实如此。

我没有问代码是否会被内联。JIT 确实内联它。

我检查了运行时发出的汇编操作。对于这样的代码,它们是不同的:

像这样:

反汇编中没有调用指令,因此操作实际上是内联的。然而,差异是显着的。性能测试表明,使用 Second 比使用 double 慢 10 倍。

所以我的问题是(注意!):为什么 JIT 生成的 IA64 代码与上述情况不同?可以做些什么来让 struct 以双倍的速度运行?double 和 Second 之间似乎没有理论上的区别,我看到的差异的深层原因是什么?

0 投票
3 回答
1090 浏览

c++ - 重载运算符 << 用于成员函数中类的枚举成员

如何为作为类成员的枚举重载 << 运算符。具体来说,我有以下代码:

如何让打印功能打印“b”而不是“1”?

0 投票
2 回答
383 浏览

c++ - C++ 重载运算符解析

g++ 4.4.5

我有一个扩展类 std::ofstream 以添加一些功能的类。

这基本上允许您将单个位写入布尔值,然后它将使用父 << 方法写入每组 8 个。我必须在这里使用这种调用语法,因为我正在调用基本方法,但在我使用此类的实际主方法中,我尝试调用以下行:

我想调用已经为 ofstream 和 unsigned char 定义的 << 方法,但它给了我一个很长的模棱两可的重载错误,列出了已经为 ofstream (char、unsigned char、signed char) 定义的所有与 char 相关的候选对象和我自己的 bool 方法,即使我明确地转换为 char。但是我确实设法让它与以下内容一起工作:

这一定与 g++ 如何进行隐式转换有关(我的猜测是在第一种情况下我的用户定义转换之后还有一个可能的转换,这使得函数调用语法避免了模棱两可)。有谁知道为什么会发生这种情况,或者是否有更好的语法可以避免错误?

0 投票
1 回答
5746 浏览

c++ - c++ 指向运算符的指针

我想用c++(或c++0x)编写一个指针,它将指向一个类的运算符,比如说A或B。有什么方法可以做到吗?

当然有这样的语法

但它不能解决这个问题。我想制作通用指针,而不是为其指定基类-仅用于“操作员函数”的指针

0 投票
4 回答
16729 浏览

javascript - Javascript 中的双点运算符 (..) 是什么?

我正在用 Spidermonkey 中的 Parser API 做一些工作。文档显示有一个二元运算符..。有人知道这是/做什么吗我很想知道。我以前从未见过它。如果我不得不猜测,我不得不说它与 E4X 有关,但这只是因为我对 E4X 一无所知。

0 投票
9 回答
70983 浏览

c# - 覆盖 == 运算符。如何与空值进行比较?

可能重复:
如何在没有无限递归的情况下检查“==”运算符重载中的空值?

这可能有一个简单的答案......但它似乎在逃避我。这是一个简化的示例:

假设对于这个特定的应用程序,可以说如果社会安全号码匹配,并且两个名称匹配,那么我们指的是同一个“人”。

为了保持一致,我们也为团队中不使用该.Equals方法的开发人员覆盖了 == 和 != 运算符。

很好,花花公子,对吧?

但是,当 Person 对象是 时会发生什么null

你不能写:

由于这将导致 == 运算符覆盖运行,并且代码将在以下位置失败:

方法调用,因为您不能在空实例上调用方法。

另一方面,您不能在 == 覆盖中显式检查此条件,因为它会导致无限递归(以及 Stack Overflow [dot com])

那么,如何覆盖 == 和 != 运算符以实现值相等并仍然考虑空对象?

我希望答案不是简单得令人痛苦。:-)