【问题标题】:Is i =+ expression; equal to i = expression;? [duplicate]是 i =+ 表达式;等于 i = 表达式;? [复制]
【发布时间】:2022-11-28 01:40:49
【问题描述】:

我对以下问题感到困惑:

i += expression; // means i = i + expression

这个i =+ expression;呢,我在Eclipse上测试了一下结果是i = expression

所以i =+ expression;等于i = expression,那么+签到的目的是什么?

【问题讨论】:

  • 你问的是+=还是=+
  • i =+ expressioni = +expression; 相同。可能相关:What is the purpose of Java's unary plus operator?
  • 请不要只是重复您的文本以试图绕过质量检查。相反,添加更多细节,例如完整的示例,实际上提高你的问题的质量.

标签: java


【解决方案1】:

i =+ expressioni =+expression,将unary + operator应用到expression,然后将结果赋给i。请参阅@Pshemo's link(和the specification)了解一元+ 的用途(TL;DR - 从bytecharshort 转换为int 和/或拆箱)。

【讨论】:

  • +expression 和 0+expression 一样吗?
  • @somega - 查看unary numeric promotion(这是一元+所做的)和binary numeric promotion(这是加法运算符+所做的)的JLS部分,是的,因为0int从字面上看,我认为它做同样的事情。但这不是我建议的思考方式。我建议改为阅读一元 + 所做的详细信息。