我在Android源代码中看到了一个不熟悉的符号:*=
例如:density *= invertedRatio;
我不熟悉星等号表示法。有人可以解释一下吗?
答案 0 :(得分:20)
在Java中,*=
称为乘法复合赋值运算符。
这是
的捷径density = density * invertedRatio;
相同的缩写是可能的,例如为:
String x = "hello "; x += "world" // results in "hello world"
int y = 100; y -= 42; // results in y == 58
等等。
答案 1 :(得分:9)
density *= invertedRatio;
是density = density * invertedRatio;
这种表示法来自C。
答案 2 :(得分:7)
这是一个速记赋值运算符。它采用以下形式:
variable op= expression;
是
的缩写形式variable = variable op expression;
所以,
density *= invertedRatio;
相当于
density = density * invertedRatio;
有关详细信息,请参阅以下链接:
答案 3 :(得分:3)
就像Da说的那样,它是density = density * invertedRatio;
的缩写 - 它不是Android特有的,它是标准的Java。你会发现这个(和类似的运算符)在许多语言中都有类似C语法。