我最近在调试一个结果比预期大得多的问题。我打算写的是:
y += height + rowHeight * 2;
我写的是
y += height * + rowHeight * 2;
我没有立即看到错误,因为显然* +
是Java中的有效运算符,或者至少是Android java。我以前从未听说过这件事,我也不知道这意味着什么。
作为一项实验,我发现这个广义形式是一个正则表达式[*/%][+-]*
它看起来像某种形式的波兰表示法,但我并不知道Java支持这种表示法。
那么......我在哪里可以找到有关此运算符的文档,以及它究竟是什么意思?
答案 0 :(得分:3)
它正在使用一元加运算符 - 所以就像这样:
y += height * (+rowHeight) * 2;
举一个看起来根本不奇怪但是使用一元减去而不是一元加号的例子:
y += height * -rowHeight * 2;
希望这更有意义:)
答案 1 :(得分:0)
+
只是一个积极的信号(一元运算符)。你可以重写它:
y += height * (+ rowHeight) * 2;
在java中编写它也是有效的:
int x = +-+-+-+- 5;
答案 2 :(得分:0)
+
和-
都是一元运算符,否则您无法编写如下内容:
int n = -1;
int x = +42;
答案 3 :(得分:0)
编译器将表达式视为运算符
y += height * (+ rowHeight) * 2;