【问题标题】:Concern with the vocabulary of JLS关注JLS的词汇
【发布时间】:2020-07-27 13:46:12
【问题描述】:

我总是看到这个奇怪的符号 § 但从来不明白 wtf 的意思


还有这里的 E1、T、op 是什么意思?

来自帖子:Why don't Java's +=, -=, *=, /= compound assignment operators require casting?

纠正我:

T = 数据类型

op = 运算符

【问题讨论】:

    标签: java operators jls compound-assignment


    【解决方案1】:

    "§" (U+00a7 SECTION SIGN),正如其 unicode 名称所暗示的那样,仅表示“节”。它用于引用 JLS 中的特定部分。

    E1 op= E2是“复合赋值表达式”的一种形式。我相信您已经看过复合赋值表达式。它们是这样的:

    myCoolVariable += 5
    foo *= bar
    timeLeft -= 1
    

    在最后一个示例中,timeLeftE1-op1E2E1E2 只是表达式。 T,正如规范所说,具体E1的类型op 这里指的是= 前面的运算符。所以大多数情况下,你的理解是正确的。

    规范说timeLeft -= 1(假设timeLeftint)等表达式等同于:

    timeLeft = (int)((timeLeft) - (1))
    

    除了timeLeft 只计算一次。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2022-11-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-04-18
      相关资源
      最近更新 更多