Java, унарный плюс оператор, кажется, прибыл из C через C++.
int result = +1;
Это, кажется, имеет следующие эффекты:
int
, если это уже не int
или ширеМне кажется, что существуют лучшие/более ясные способы сделать все эти вещи.
В этом ТАК вопрос, относительно оператора дубликата в C#, кто-то сказал, что "Это там, чтобы быть перегруженным, если Вы чувствуете потребность".
Однако в Java, нельзя перегрузить оператор. Это унарное плюс оператор существует в Java только потому, что он существовал в C++?
Унарный оператор plus выполняет автоматическое преобразование в int
, если тип его операнда - byte
, char
или short
. Это называется унарное числовое продвижение, и оно позволяет вам делать такие вещи, как:
char c = 'c';
int i = +c;
Конечно, это ограниченное применение. Но у него есть цель. См. спецификацию, в частности разделы §15.15.3 и §5.6.1.
Я не знаю, но подозреваю, что это симметрия с (очевидно необходимый) унарный минус оператор.
Я предполагаю, что это есть, потому что иногда ввод плюса делает все яснее. Вы можете подчеркнуть тот факт, что некоторое число является положительным, а не отрицательным.
Кроме того, чтобы дать пример реального мира, где это используется, положительные температуры, как правило, всегда начинаются с плюса в некоторых частях мира.
Одна из целей разработки Java заключалась в том, чтобы быть знакомым (разработчику C / C ++), поэтому, когда дело доходит до таких операторов, я почти уверен, что у них должна быть веская причина для ее исключения, а не веская причина. нуждаться в этом.
У многих других языков есть унарный плюс. Его принято включать, а исключать в копеечку. Это всего лишь пара строк в компиляторе.