【问题标题】:What does '+i' mean in Java? [duplicate]Java中的'+i'是什么意思? [复制]
【发布时间】:2014-09-18 14:34:31
【问题描述】:

我在查看同事的代码时遇到了这个问题。她不小心把它留下了(它曾经是一个字符串连接),我认为它不会编译。原来我错了,所以我试着看看那个操作员做了什么:

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

据我所知,它什么也没做,但我很好奇它是否有理由被允许编译。该操作员是否有一些隐藏的功能?它类似于++i,但你会认为编译器会在+i 上出错。

【问题讨论】:

标签: java syntax


【解决方案1】:

那是plus unary operator +。它基本上是numeric promotion,因此“如果操作数的编译时类型为byteshortchar,则将其提升为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

【讨论】:

猜你喜欢
  • 1970-01-01
  • 2012-08-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-12-15
相关资源
最近更新 更多