问题标签 [unary-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 投票
4 回答
199 浏览

c - C中的输入谜题

可能重复:
谁能解释这些未定义的行为(i = i++ + ++i,i = i++ 等……)

输出为 7 和 14

输入用户给出的是 5 输出是 7 和 13

为什么?

0 投票
4 回答
12228 浏览

scala - Scala - 前缀一元运算符

我最近给了 Scala 第二次机会,并从我经常实现的项目开始(使用函数式或伪函数式语言):命题逻辑(以及后来的谓词逻辑)的自动推理器。

现在,我试图在语言本身中尽可能地获得命题逻辑的符号,并且我已经做到了这一点 - 使用隐式转换(String -> Atom):

函数“and”和“implies”(以及“or”和“equivalent”)是调用相关案例类构造函数的简单方法。但是,在实现“不”时,我遇到了以下两种表示法中的任何一种:

有没有办法欺骗 Scala 接受所需的:

最好不要将类“Not”重命名为“not”,因为将来我可能会称它为“¬”或其他名称。

0 投票
1 回答
598 浏览

c++ - C++ 中的运算符重载(有和没有朋友)

嘿,我想知道这两个运算符定义之间的区别:

1:

2:

据我了解,用于:

希望对差异进行一些解释,谢谢!

0 投票
5 回答
950 浏览

c++ - 零值上的一元运算符-() - c++

我编写了这段代码来重载矩阵类上的一元运算符:

当我在 Visual Studio 中使用调试器运行我的程序时,它向我展示了当在 double 上完成操作时,它会插入数字 -0.00000 的结果矩阵。它是一些奇怪的 VS 显示功能,还是我应该小心处理的东西?

0 投票
3 回答
260 浏览

c++ - 禁用类指针递增/递减运算符

例如代码:

我需要在编译阶段避免指针递增/递减运算符:

0 投票
2 回答
147 浏览

perl - 架构的一元 NOT/Integersize

来自“精通 Perl/第 16 章/位运算符/一元非,~”:

一元 NOT 运算符(有时称为补码运算符)~,根据体系结构的整数大小返回值的按位否定或 1 的补码

为什么下面的脚本会输出两个不同的值?

输出:

0 投票
2 回答
353 浏览

c++ - 如何在 C++ 中为前向声明的类型实现一元运算符重载?

以下代码无法在 Visual Studio 2008 中编译。当 Foo1 在 Bar 之前定义时,如何让它允许 Foo1 类中的一元运算符将其转换为 Bar?

0 投票
3 回答
2246 浏览

ruby - Ruby 中的一元加运算符有什么意义?

除了用一元减号做一个很好的对称性之外,为什么在Numeric类上定义一元加号运算符?它是否有一些实用价值,除了会引起混乱,允许编写类似的东西++i(与大多数非 Ruby 主义者不同,不会增加i)。

我可以想到在自定义类上定义一元加号可能很有用的场景(例如,如果您正在创建一些性感的 DSL),因此能够定义它是可以的,但为什么它已经在 Ruby 数字上定义了呢?

0 投票
1 回答
330 浏览

ruby - 为什么要在 ruby​​ 的属性上使用一元运算符?即 &:first

可能重复:
Ruby/Ruby on Rails & 冒号快捷方式

作为一种习惯,我会尝试定期阅读一些其他人的源代码并在要点中对其进行评论。现在我正在阅读 sinatra 的基础应用程序并发现了一段有趣的代码(这是他们的 Request 类的一部分)

我不明白的部分是 &:last 和 &:first 在做什么?!?它看起来像疯了!

0 投票
3 回答
4219 浏览

c - 一元运算符如何在 C 中工作,您不能预先增加零

我对一元运算符如何在 C 中用于补码、逻辑否定和预递增感到困惑。

一个补码对 0 起作用,如下所示:

逻辑否定对 0 起作用,如下所示:

但是 Preincrement against 0 会产生编译器错误:

考虑到它们都是一元运算符,为什么这三个都不工作?