Значение * = в Java - PullRequest
       3

Значение * = в Java

3 голосов
/ 19 декабря 2011

Я вижу незнакомую нотацию в исходном коде Android: *=

Например: density *= invertedRatio;

Я не знаком с нотацией звездного равенства.Кто-нибудь может это объяснить?

Ответы [ 4 ]

20 голосов
/ 19 декабря 2011

В Java *= называется составным оператором присваивания умножения.

Это ярлык для

density = density * invertedRatio;

Возможны такие же сокращения, например, для:

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

и т. Д.

9 голосов
/ 19 декабря 2011

density *= invertedRatio; - сокращенная версия density = density * invertedRatio;

Это обозначение происходит от C.

7 голосов
/ 19 декабря 2011

Это оператор присваивания. Он принимает следующую форму:

variable op= expression;

является краткой формой

variable = variable op expression;

Итак,

density *= invertedRatio;

эквивалентно

density = density * invertedRatio;

Для получения дополнительной информации см. Следующую ссылку:

Как использовать операторы присваивания в Java

3 голосов
/ 19 декабря 2011

Точно так же, как сказал Да, это сокращение от density = density * invertedRatio; - это не специфично для Android, это стандартная Java.Вы найдете это (и подобные операторы) во многих языках с C-подобным синтаксисом.

...