Что цель Java унарна плюс оператор?

Java, унарный плюс оператор, кажется, прибыл из C через C++.

int result = +1;   

Это, кажется, имеет следующие эффекты:

  • Распаковывает его операнд, если это - интерфейсный объект
  • Продвигает его операнд int, если это уже не int или шире
  • Усложняет немного парсинг злых выражений, содержащих большие количества последовательных знаков "плюс"

Мне кажется, что существуют лучшие/более ясные способы сделать все эти вещи.

В этом ТАК вопрос, относительно оператора дубликата в C#, кто-то сказал, что "Это там, чтобы быть перегруженным, если Вы чувствуете потребность".

Однако в Java, нельзя перегрузить оператор. Это унарное плюс оператор существует в Java только потому, что он существовал в C++?

36
задан Community 23 May 2017 в 10:27
поделиться

5 ответов

Унарный оператор plus выполняет автоматическое преобразование в int, если тип его операнда - byte, char или short. Это называется унарное числовое продвижение, и оно позволяет вам делать такие вещи, как:

char c = 'c';
int i = +c;

Конечно, это ограниченное применение. Но у него есть цель. См. спецификацию, в частности разделы §15.15.3 и §5.6.1.

41
ответ дан 27 November 2019 в 05:52
поделиться

Я не знаю, но подозреваю, что это симметрия с (очевидно необходимый) унарный минус оператор.

7
ответ дан 27 November 2019 в 05:52
поделиться

Я предполагаю, что это есть, потому что иногда ввод плюса делает все яснее. Вы можете подчеркнуть тот факт, что некоторое число является положительным, а не отрицательным.

Кроме того, чтобы дать пример реального мира, где это используется, положительные температуры, как правило, всегда начинаются с плюса в некоторых частях мира.

2
ответ дан 27 November 2019 в 05:52
поделиться

Одна из целей разработки Java заключалась в том, чтобы быть знакомым (разработчику C / C ++), поэтому, когда дело доходит до таких операторов, я почти уверен, что у них должна быть веская причина для ее исключения, а не веская причина. нуждаться в этом.

3
ответ дан 27 November 2019 в 05:52
поделиться

У многих других языков есть унарный плюс. Его принято включать, а исключать в копеечку. Это всего лишь пара строк в компиляторе.

2
ответ дан 27 November 2019 в 05:52
поделиться
Другие вопросы по тегам:

Похожие вопросы: