问题标签 [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.
c# - 或赋值运算符 (|=) 如何工作?(C#)
我已经看到文档和答案(1) (2)试图解释 |= 运算符是什么以及它是如何工作的,虽然它在基本层面上是有意义的......我不太明白为什么或它如何完成它的工作。
解释说这a |= b
相当于a = a | b
,但我不明白它是如何评估是给出a
自身的值(a
)还是 的值b
。根据我的理解,“或”意味着它可以是两件事之一,但没有指定它是两件事中的哪一个。
在 Visual Studio 中,我使用了一个名为 Refactoring Essentials 的扩展,它建议我用带有 |= 运算符的行替换我的一些代码,虽然代码与其中的运算符一起工作,但我不知道它是如何完成的,这就是促使我尝试在线研究它的原因(因此,提出了这个问题)。
我的代码来自
到
它仍然有效。虽然我猜这e.Cancel
是根据 的评估确定的MessageBox.Show(...) == MessageBoxResult.No
,但我不知道为什么需要 |= 运算符。为什么不直接使用标准赋值 (=) 运算符,因为表达式的结果是布尔值并e.Cancel
采用布尔值?那么使用条件 (? :) 运算符呢?|= 与它相比如何(如果它甚至如此)?
ruby - 是否有 ruby oneliner 可以在没有临时副本的情况下连接嵌套数组?
现在我经常发现自己在写:
但如果你问我,那有点难看。
编辑:单元素数组似乎让一些人感到困惑,因为下面的几个答案只是没有回答这个问题。通过让每个数组至少有 2 个元素,我更清楚地说明了这一点。
Edit2:我向 ruby 核心提交了一个功能请求,以在解构数组上实现复合分配。
c++ - 得到“'operator+='不匹配,没有从参数1从'int'到'const ItemStack&'的已知转换
我一直很难找到重载 += 运算符的正确方法。我使用了似乎是最流行的方法,但它似乎不能满足该程序的需求。如果有人能帮我解决这个编译器错误或指出我正确的方向,那就太棒了。这是代码。
问题功能...
`
c++ - 优化变量值的重复赋值
为了学习 C++ 中的复合赋值,我创建了以下代码来演示它们的作用:
如您所见,我必须重新分配 49 的值,b05
因为前面的操作修改了这些值。
有没有办法绕过这样做?还是有更有效的方法来实现相同的输出?(我很感激一个代码示例)
c - 数组元素(使用复合赋值运算符后)产生垃圾值,为什么?
total[0]
并且total[1]
是正确的值,但是total[2]
是错误的值。我找不到我的错。你能解释一下吗?
c - c:这条线是做什么的?
我读了一些代码,发现了这个相当神秘的语法:
不知何故,计数增加了。但我认为 < 运算符会返回 true 或 false。这条线有什么作用?
python - 写“分配 A 或如果不可能 - B”的更好方法
所以,在我的代码中,我有一本字典,用来计算我事先不知道的项目:
显然,我不能增加一个尚不存在的值的条目。出于某种原因,我有一种感觉(在我仍然没有 Python 经验的大脑中)可能存在一种更 Pythonic 的方式来做到这一点,例如,一些允许将表达式的结果分配给事物的构造,如果不可能的话else在单个语句中。
那么,在 Python 中是否存在类似的东西?
c - 后续在寄存器上使用 OR 和 AND 复合赋值运算符的目的
在 C 和 C++ 代码中,尤其是嵌入式系统的代码中,我经常偶然发现以下形式的赋值:
不确定是否相关,但 A 和 B 是这里的寄存器。在此处查看示例:http: //processors.wiki.ti.com/index.php/Interrupt_Nesting_on_C28x#Example_Code 出现以下行:
但是,这些后续分配似乎与单个分配相同
除了理论上前者在某些情况下可以在两行之间中断之外,但这似乎在大多数代码中并不起重要作用。
使用前者比后者有优势吗,还是我看不到另一个区别?
c - += 和 =+ C 赋值运算符有什么区别
=+
我想知道和+=
(以及其他赋值运算符)之间是否有区别。我试过了,两者都做了同样的事情。那么有区别还是有约定?两者都有效,因为我的编译器不检查标准吗?
编辑:我犯了一个错误。我在测试期间使用了错误的输入,这让我认为他们都在做同样的事情。原来它们是两种不同的东西。
+=
将右值添加到左值
=+
将右值分配给左值
c - c 复合赋值只增加右位
我是 C 新手并使用串行设备,我有这一行:
如何在循环中仅增加 DacData (DA&0x6AA) 的最后一部分?提前致谢!