gpt4 book ai didi

一元前缀运算符的 Java 消歧

转载 作者:塔克拉玛干 更新时间:2023-11-01 22:50:00 26 4
gpt4 key购买 nike

Java 解析器如何处理不明确的一元运算符?

例如,假设您在某处声明了 int x+--x 是完全有效的代码。 ---x 理论上也是有效的,但编译器会抛出错误。同样,+~~~~~~+--x 被接受,但 ~~~~~~++--x 不被接受,即使它们都可以被接受解析为有效的表达式。

据我所知,语法有歧义,因此必须在标记化期间进行处理,但我找不到任何解释它的内容。

最佳答案

正如 Stephen P 所暗示的,一元运算符在 Java 中是从右到左分组的,这意味着这些表达式是不明确的,因为不同的运算符可能会向右分组。参见 Section 15.15 of the Java 7 spec一元运算符的规则。

编辑

在某种程度上,我认为您已经回答了自己的问题。模棱两可的表达式(例如 ---x)似乎会导致编译错误,因为编译器不知道您要它做什么。在这些情况下,程序员需要通过使表达式更具体来解决歧义——例如通过添加括号来消除歧义。

关于一元前缀运算符的 Java 消歧,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14993361/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com