【发布时间】:2011-12-19 15:23:57
【问题描述】:
我在 Android 源代码中看到一个不熟悉的符号:*=
例如:density *= invertedRatio;
我不熟悉星等符号。谁能解释一下?
【问题讨论】:
-
其他人已经回答了你的问题,但是我感觉你也可以写“变量++”或者“变量--”,表示变量计数加1,或者减1 ,分别。
我在 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。
【讨论】:
density 是 short 它仍然可以编译,甚至可以工作。
它是一个速记赋值运算符。它采用以下形式:
variable op= expression;
是
的简写形式variable = variable op expression;
所以,
density *= invertedRatio;
等价于
density = density * invertedRatio;
查看以下链接了解更多信息:
【讨论】:
就像 Da 所说的,它是 density = density * invertedRatio; 的缩写 - 它不是特定于 Android 的,它是标准的 Java。您会在许多语言中使用类似 C 的语法找到这个(和类似的运算符)。
【讨论】: