我一直在到处寻找这些含义以及它们的用法
+=
,-=
,*=
,/=
,我发现的最多的是它们是“通过加法分配”,“按差分配”、“按乘积分配”、“按商分配”等,但我不知道何时或如何使用它们。如果有人可以向我解释这一点,我将非常感激。谢谢
它们是简写:
a += b
与
相同a = a + (b)
等等...
所以
a -= b
相当于 a = a - (b)
a *= b
相当于 a = a * (b)
a /= b
相当于 a = a / (b)
由于
b
上有括号,a *= 10 / 5
不等于a = a * 10 / 5
,而是等于a = a * (10 / 5)
正如 Kevin Brydon 建议的那样 - 熟悉 C# 中的运算符此处。
请参阅规范及其小节中的
7.13 Assignment operators
,特别是7.13.2 Compound assignment
:
x op= y 形式的操作通过应用二元运算符重载解析(第 7.2.4 节)进行处理,就像该操作被编写为 x op y 一样。然后,
•如果所选运算符的返回类型可隐式转换为 x 的类型,则该操作将计算为 x = x op y,但 x 仅计算一次。
•否则,如果所选运算符是预定义运算符,且所选运算符的返回类型可显式转换为 x 的类型,并且 y 隐式可转换为 x 的类型,则该操作将计算为 x = (T)(x op y),其中 T 是 x 的类型,但 x 仅计算一次。
•否则,复合赋值无效,并出现编译时错误。
a+=1 means a = a+1
a-=2 means a = a-2
a*=3 means a = a*3
a/=4 means a = a/4
这些是赋值运算符(简写)
a += 1; is equal to a = a + 1;
b -= 1; is equal to b = b - 1;
a *= 1; is equal to a = a * 1;
b /= 1; is equal to b = b / 1;
参考:链接
粗略地说,
var *operator*= expression
的意思是var = var *operator* expression
。另外,我听说某处有文档。
这是一个简短的形式。所以不要写:
x = x + 1;
您可以简单地写:
x += 1;
具有相同的效果。
这些是速记运算符。
当您执行操作并将结果存储到它们之间的变量之一时,将使用这些。也就是说,您将结果存储到操作数之一中
假设示例
1)x=x+y;
在这里你可以做 x+=y;
例如 2) x=x+1;
在这里你可以做 x+=1;