+ = b是否真的等于a = a + b?
这个问题在这里已经有了答案:
根据Java语言规范第15.26.2节,复合赋值运算符向左侧操作数的类型插入一个隐式转换:
二元运算的结果被转换为左变量的类型,并经过值集转换(第5.1.13节)到适当的标准值集(不是扩展指数值集),转换结果是存储到变量中。
赋值a = a + b
将要求演员表是等同的:
a = (int)(a + b);
你有一个double和int值:
a += b is equivalent to a = (int)(a + b);
a = a + b is equivalent to a = a + b;
在后者中,您无法编译,因为您正在尝试在不投射的情况下将double添加到int。 a + = b为你演员阵容。
链接地址: http://www.djcxy.com/p/12795.html上一篇: Is a += b really equivalent to a = a + b?
下一篇: Why b=b+1 when b is a byte won't compile but b+=1 compiles