我在Java中的含义是什么?

参见英文答案 >
What is the purpose of Java’s unary plus operator?                                    7个

我在审查同事的代码时遇到了这个问题.她意外地把它留了(它曾经是一个字符串连接),我以为它不会编译.事实证明我错了,所以我试着看看那个操作符做了什么:

public static void main(String[] args) {
    int i = -1;
    System.out.println(String.format("%s", +i));
    System.out.println(String.format("%s", +i));
}

据我所知,它什么也没做,但我很好奇是否有允许编译的原因.这个操作符有一些隐藏的功能吗?它与i类似,但你认为编译器会对我进行barf.

最佳答案 那就是
plus unary operator +.它基本上就是
numeric promotion,所以“如果操作数是编译时类型的byte,short或char,则它被提升为int类型的值”.

另一个一元运算符是递增运算符,它将值递增1.递增运算符可以在操作数之前(prefix operator)或之后(postfix operator)应用.不同之处在于前缀运算符(i)求值为递增值,而后缀运算符(i)求值为原始值.

int i = -1;
System.out.println(+i);         // prints -1

System.out.println(i++);        // prints -1, then i is incremented to 0

System.out.println(++i);        // i is incremented to 1, prints 1
点赞