我在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语法的编程语言中,你会发现这种(以及类似的)运算符。