问题标签 [compound-assignment]

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

c# - 或赋值运算符 (|=) 如何工作?(C#)

我已经看到文档和答案(1) (2)试图解释 |= 运算符是什么以及它是如何工作的,虽然它在基本层面上是有意义的......我不太明白为什么或它如何完成它的工作。

解释说这a |= b相当于a = a | b,但我不明白它是如何评估是给出a自身的值(a)还是 的值b。根据我的理解,“或”意味着它可以是两件事之一,但没有指定它是两件事中的哪一个。

在 Visual Studio 中,我使用了一个名为 Refactoring Essentials 的扩展,它建议我用带有 |= 运算符的行替换我的一些代码,虽然代码与其中的运算符一起工作,但我不知道它是如何完成的,这就是促使我尝试在线研究它的原因(因此,提出了这个问题)。

我的代码来自

它仍然有效。虽然我猜这e.Cancel是根据 的评估确定的MessageBox.Show(...) == MessageBoxResult.No,但我不知道为什么需要 |= 运算符。为什么不直接使用标准赋值 (=) 运算符,因为表达式的结果是布尔值并e.Cancel采用布尔值?那么使用条件 (? :) 运算符呢?|= 与它相比如何(如果它甚至如此)?

0 投票
4 回答
116 浏览

ruby - 是否有 ruby​​ oneliner 可以在没有临时副本的情况下连接嵌套数组?

现在我经常发现自己在写:

但如果你问我,那有点难看。

编辑:单元素数组似乎让一些人感到困惑,因为下面的几个答案只是没有回答这个问题。通过让每个数组至少有 2 个元素,我更清楚地说明了这一点。

Edit2:我向 ruby​​ 核心提交了一个功能请求,以在解构数组上实现复合分配。

0 投票
1 回答
2069 浏览

c++ - 得到“'operator+='不匹配,没有从参数1从'int'到'const ItemStack&'的已知转换

我一直很难找到重载 += 运算符的正确方法。我使用了似乎是最流行的方法,但它似乎不能满足该程序的需求。如果有人能帮我解决这个编译器错误或指出我正确的方向,那就太棒了。这是代码。

问题功能...

`

0 投票
4 回答
79 浏览

c++ - 优化变量值的重复赋值

为了学习 C++ 中的复合赋值,我创建了以下代码来演示它们的作用:

如您所见,我必须重新分配 49 的值,b05因为前面的操作修改了这些值。

有没有办法绕过这样做?还是有更有效的方法来实现相同的输出?(我很感激一个代码示例)

0 投票
1 回答
139 浏览

c - 数组元素(使用复合赋值运算符后)产生垃圾值,为什么?

total[0]并且total[1]是正确的值,但是total[2]是错误的值。我找不到我的错。你能解释一下吗?

0 投票
3 回答
116 浏览

c - c:这条线是做什么的?

我读了一些代码,发现了这个相当神秘的语法:

不知何故,计数增加了。但我认为 < 运算符会返回 true 或 false。这条线有什么作用?

0 投票
2 回答
132 浏览

python - 写“分配 A 或如果不可能 - B”的更好方法

所以,在我的代码中,我有一本字典,用来计算我事先不知道的项目:

显然,我不能增加一个尚不存在的值的条目。出于某种原因,我有一种感觉(在我仍然没有 Python 经验的大脑中)可能存在一种更 Pythonic 的方式来做到这一点,例如,一些允许将表达式的结果分配给事物的构造,如果不可能的话else在单个语句中

那么,在 Python 中是否存在类似的东西?

0 投票
4 回答
158 浏览

c - 后续在寄存器上使用 OR 和 AND 复合赋值运算符的目的

在 C 和 C++ 代码中,尤其是嵌入式系统的代码中,我经常偶然发现以下形式的赋值:

不确定是否相关,但 A 和 B 是这里的寄存器。在此处查看示例:http: //processors.wiki.ti.com/index.php/Interrupt_Nesting_on_C28x#Example_Code 出现以下行:

但是,这些后续分配似乎与单个分配相同

除了理论上前者在某些情况下可以在两行之间中断之外,但这似乎在大多数代码中并不起重要作用。

使用前者比后者有优势吗,还是我看不到另一个区别?

0 投票
1 回答
45455 浏览

c - += 和 =+ C 赋值运算符有什么区别

=+我想知道和+=(以及其他赋值运算符)之间是否有区别。我试过了,两者都做了同样的事情。那么有区别还是有约定?两者都有效,因为我的编译器不检查标准吗?

编辑:我犯了一个错误。我在测试期间使用了错误的输入,这让我认为他们都在做同样的事情。原来它们是两种不同的东西。

+= 右值添加到左值

=+ 右值分配给左值

0 投票
1 回答
46 浏览

c - c 复合赋值只增加右位

我是 C 新手并使用串行设备,我有这一行:

如何在循环中仅增加 DacData (DA&0x6AA) 的最后一部分?提前致谢!