【问题标题】:Meaning of *= in JavaJava中*=的含义
【发布时间】:2011-12-19 15:23:57
【问题描述】:

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

例如:density *= invertedRatio;

我不熟悉星等符号。谁能解释一下?

【问题讨论】:

  • 其他人已经回答了你的问题,但是我感觉你也可以写“变量++”或者“变量--”,表示变量计数加1,或者减1 ,分别。

标签: java notation


【解决方案1】:

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

这是一个快捷方式

density = density * invertedRatio;

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

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

等等。

【讨论】:

    【解决方案2】:

    density *= invertedRatio;density = density * invertedRatio; 的缩短版

    这个符号来自C。

    【讨论】:

    • 我可能会称之为语法糖而不是首字母缩略词。 :p
    • 来自C?这就是为什么我认为它看起来与指针非常相似!但它不是......
    • 请注意,可能会插入魔法演员。例如,如果 densityshort 它仍然可以编译,甚至可以工作。
    【解决方案3】:

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

    variable op= expression;
    

    的简写形式
    variable = variable op expression;
    

    所以,

    density *= invertedRatio;
    

    等价于

    density = density * invertedRatio;
    

    查看以下链接了解更多信息:

    How to Use Assignment Operators in Java

    【讨论】:

    【解决方案4】:

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

    【讨论】:

      猜你喜欢
      • 2013-02-13
      • 2019-02-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-12-01
      • 2012-07-26
      相关资源
      最近更新 更多