我在 Android 源代码中看到了一个不熟悉的符号:*=
例如:density *= invertedRatio;
我不熟悉星等符号。有人可以解释一下吗?
在 Java 中,*=
称为乘法复合赋值运算符。
这是一条捷径
density = density * invertedRatio;
可以使用相同的缩写,例如:
String x = "hello "; x += "world" // results in "hello world"
int y = 100; y -= 42; // results in y == 58
等等。
density *= invertedRatio;
是一个缩短版density = density * invertedRatio;
这个符号来自 C.
它是一个速记赋值运算符。它采用以下形式:
variable op= expression;
是的缩写形式
variable = variable op expression;
所以,
density *= invertedRatio;
相当于
density = density * invertedRatio;
有关更多信息,请参阅以下链接:
就像 Da 说的那样,它是简写density = density * invertedRatio;
- 它不是特定于 Android 的,它是标准的 Java。您会在许多语言中使用类似 C 的语法找到这个(和类似的运算符)。