4

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

例如:density *= invertedRatio;

我不熟悉星等符号。有人可以解释一下吗?

4

4 回答 4

20

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

这是一条捷径

density = density * invertedRatio;

可以使用相同的缩写,例如:

String x = "hello "; x += "world" // results in "hello world"
int y = 100; y -= 42; // results in y == 58

等等。

于 2011-12-19T15:25:13.207 回答
13

density *= invertedRatio;是一个缩短版density = density * invertedRatio;

这个符号来自 C.

于 2011-12-19T15:26:16.157 回答
8

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

variable op= expression;

是的缩写形式

variable = variable op expression;

所以,

density *= invertedRatio;

相当于

density = density * invertedRatio;

有关更多信息,请参阅以下链接:

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

于 2011-12-19T15:35:20.227 回答
3

就像 Da 说的那样,它是简写density = density * invertedRatio;- 它不是特定于 Android 的,它是标准的 Java。您会在许多语言中使用类似 C 的语法找到这个(和类似的运算符)。

于 2011-12-19T15:27:43.943 回答