Java中*=的含义

Igo*_*sky 3 java notation

我在Android源代码中看到了一个不熟悉的符号: *=

例如: density *= invertedRatio;

我不熟悉星等号表示法.有人可以解释一下吗?

Dom*_*aja 20

在Java中,它*=被称为乘法复合赋值运算符.

这是一条捷径

density = density * invertedRatio;
Run Code Online (Sandbox Code Playgroud)

相同的缩写是可能的,例如:

String x = "hello "; x += "world" // results in "hello world"
int y = 100; y -= 42; // results in y == 58
Run Code Online (Sandbox Code Playgroud)

等等.


Ale*_*exR 10

density *= invertedRatio; 是缩短版的 density = density * invertedRatio;

这种表示法来自C.


Jom*_*oos 7

它是一个速记赋值运算符.它采用以下形式:

variable op= expression;
Run Code Online (Sandbox Code Playgroud)

是简短的形式

variable = variable op expression;
Run Code Online (Sandbox Code Playgroud)

所以,

density *= invertedRatio;
Run Code Online (Sandbox Code Playgroud)

相当于

density = density * invertedRatio;
Run Code Online (Sandbox Code Playgroud)

有关详细信息,请参阅以下链接:

如何在Java中使用赋值运算符

  • 这不是严格意义上的,请参阅http://stackoverflow.com/questions/8710619/java-operator (2认同)