public static void main(String[] args) { int x = 1 + + + + + + + + + 2; System.out.println(x); }
Я могу скомпилировать выше метод. Есть ли объяснение о разрешенном множественном операторе "+"?
Это сложение, затем оператор унарный плюс повторяется. Это эквивалентно следующему:
int x = 1 + (+ (+ (+ (+ (+ (+ (+ (+ 2))))))));
Причина в том, что + может выступать в качестве унарного оператора , подобно тому, как - может быть оператором отрицания. Вы просто соединяете несколько унарных операторов вместе (с одним последним двоичным сложением).
оценивается как 1 + (+ ... (+(+(+2))) ... ) = 1 + 2 = 3
1 + (+ ... (+(+(+2))) ... )
Это потому, что хотя синтаксически это может показаться неправильным, использование '+', но есть эта унарная операция, повторяющаяся.
вы не получите никаких исключений, все работает нормально. Вы получите вывод 3.
Я думаю, что они рассматривали все эти плюсы как один и тот же +. Поскольку вывод равен 3, то здесь нет никакой магии