这些(+ =, – =,* =,/ =)运算符是什么意思?
我一直在寻找各地,弄清楚这些是什么意思以及它们是如何使用的+=
, -=
, *=
, /=
,我发现的最多的是“增加的分配”,“按差异分配”, “按产品分配”,“按商数分配”等,但我无法弄清楚它们何时或如何使用。 如果有人能够向我解释这一点,我将非常感激。 谢谢
它们是速记:
a += b
是相同的
a = a + b
等等…
所以
-
a -= b
相当于a = a - b
-
a *= b
相当于a = a * b
-
a /= b
相当于a = a / b
正如Kevin Brydon建议的那样 – 熟悉C#中的运算符。
请参阅规范及其小节中的7.13 Assignment operators
,特别是7.13.2 Compound assignment
:
x op = yforms的操作通过应用二元运算符重载决策 (见第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
这些是赋值运算符(Shorthands)
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
。 另外,我听说某处有文档。
这是一个简短的forms。 所以不要写:
x = x + 1;
你可以简单地写:
x + = 1;
它具有相同的效果。
这些都是速记运营商。
当您执行操作并将结果存储到它们之间的变量之一时,将使用这些。 那就是你将结果存储到你的一个操作数假设的例子中
1)X = X + Y;
在这里你可以做x + = y;
ex 2)x = x + 1;
在这里你可以做x + = 1;