Забота о лексике JLS - PullRequest
       33

Забота о лексике JLS

0 голосов
/ 14 апреля 2020

Я всегда вижу этот странный символ § , но никогда не понимаю, что означает wtf enter image description here


Что означает E1, T, op здесь?

Из поста: Почему в Java нет составных + =, - =, * =, / = операторы присваивания требуют приведения?

Исправить меня:

T = тип данных

op = operator

1 Ответ

1 голос
/ 14 апреля 2020

«§» (ЗНАК СЕКЦИИ U + 00a7), как следует из названия в Юникоде, просто означает «раздел». Он используется для ссылки на определенные c разделы в JLS.

E1 op= E2 является формой "составного выражения присваивания". Я уверен, что вы видели составные выражения присваивания. Это такие вещи как:

myCoolVariable += 5
foo *= bar
timeLeft -= 1

В последнем примере timeLeft это E1, - это op, 1 это E2. E1 и E2 - это просто выражения. T, как говорит spe c, конкретно тип E1. op здесь относится к оператору непосредственно перед =. Так что, в основном, ваше понимание верно.

spe c говорит, что такое выражение, как timeLeft -= 1 (при условии timeLeft является int) эквивалентно:

timeLeft = (int)((timeLeft) - (1))

за исключением того, что timeLeft оценивается только один раз.

...