Meaning of *= in Java

后端 未结 4 1743
孤城傲影
孤城傲影 2021-01-20 21:00

I see an unfamiliar notation in the Android source code: *=

For example: density *= invertedRatio;

I am not familiar with the star-

相关标签:
4条回答
  • 2021-01-20 21:13

    Just like Da said, it's short for density = density * invertedRatio; - it's nothing Android specific, it's standard Java. You will find this (and similar operators) in many languages with a C-like syntax.

    0 讨论(0)
  • 2021-01-20 21:21

    It is a shorthand assignment operator. It takes the following form:

    variable op= expression;
    

    is short form of

    variable = variable op expression;
    

    So,

    density *= invertedRatio;
    

    is equivalent to

    density = density * invertedRatio;
    

    See the following link for more info:

    How to Use Assignment Operators in Java

    0 讨论(0)
  • 2021-01-20 21:33

    density *= invertedRatio; is a shortened version of density = density * invertedRatio;

    This notation comes from C.

    0 讨论(0)
  • 2021-01-20 21:40

    In Java, the *= is called a multiplication compound assignment operator.

    It's a shortcut for

    density = density * invertedRatio;
    

    Same abbreviations are possible e.g. for:

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

    and so on.

    0 讨论(0)
提交回复
热议问题