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

c# - 使用复合乘法语句时得到错误的结果 - C#

我注意到一件非常奇怪的事情。在下面的代码片段中,Console 上输出的结果总是0

它看起来result *= 10 + i;总是10result(where resultis 0) 相乘,而不是相加i

如果我只改变乘法线......

这会在控制台上输出正确result的 - 即123.

我的问题是,为什么result *= 10 + i;不能正常工作 - 并且总是给出resultas 0

0 投票
1 回答
68 浏览

pytorch - pytorch中张量加法赋值和赋值的区别

我发现 pytorch 对待张量赋值和加法赋值的方式不同。示例如下所示

结果是

如果我们运行以下代码

, 结果是

从这两个例子可以看出,使用加法赋值不会改变变量地址,而加法会改变地址。这对训练神经网络有影响。例如,在 pytorch 教程“什么是 torch.nn 真的?”中,有一段代码如下所示

我们可以看到在 torch.no_grad() 上下文中,使用了减号赋值。如果我们将减号分配更改为如下所示的正常分配,则代码不起作用。

现在,我知道如果我们不想更改变量,应该使用 += 或 -= 。但是,在python中,+=和=没有区别,两者都改变​​变量地址。示例如下所示:

我的问题是

  • 为什么 pytorch 中存在 += 和 = 之间的区别?是故意的吗?
  • 允许差异存在有什么好处?
0 投票
1 回答
53 浏览

c++ - 为什么二元运算符给出 TLE 而复合赋值运算符更快?

我正在尝试解决LeetCode 上按频率排序字符的问题。第一个使用的二元运算符给了我一个 TLE,但是当我使用复合赋值运算符时它工作正常。但我不明白为什么。

这背后有什么逻辑吗?我在下面附上了两个代码,所以你可以自己试试。

这给了 TLE

这工作正常

0 投票
2 回答
73 浏览

c++ - 定义两个版本的 << 重载

当我尝试<<通过使用另一个符号(如<<=

如果我使用

它工作正常,那么<< '\n'当 std::ostream& 返回时添加有什么问题<<=

0 投票
5 回答
116 浏览

c - *= 有什么作用?

嘿,我对 C 有点陌生,我想问为什么会打印出来4而不是260?