我被告知+=可以有不同于标准符号的效果i = i +.有没有在这情况下i += 1会从不同i = i + 1?
我在接受采访时遇到了这个问题,无法提出解决方案.我知道反之亦然,如"+ ="运算符在Java中的作用所示?
所以问题如下.
..... x = .....;
..... y = .....;
x += y; //compile error
x = x + y; //works properly
Run Code Online (Sandbox Code Playgroud) 为什么:
public class Addition {
public static void main() {
int a = 0;
double b = 1.0;
a = a + b;
System.out.println(a);
}
}
Run Code Online (Sandbox Code Playgroud)
不编译但是:
public class Addition {
public static void main() {
int a = 0;
double b = 1.0;
a += b;
System.out.println(a);
}
}
Run Code Online (Sandbox Code Playgroud)
编译.
这段代码似乎在 Java 中工作,违反了我认为我对语言的了解:
int x = 0;
x += 7.4;
Run Code Online (Sandbox Code Playgroud)
x 现在的值为 7。当然,不能只写int x = 7.4,所以这种行为对我来说似乎很奇怪且不一致。
为什么Java的开发者会选择这样的行为?
我被标记为重复的问题实际上是在回答“发生了什么”部分,但不是我的主要问题:基本原理是什么。
这是我的代码:
class Example{
public static void main(String args[]){
byte b=10;
//b=b+1; //Illegal
b+=1; //Legal
System.out.println(b);
}
}
Run Code Online (Sandbox Code Playgroud)
我想知道为什么我在使用时遇到编译错误b=b+1,但另一方面b+=1在他们似乎做同样的事情时正确编译.