在 Java 中,这种复合赋值的评估顺序是什么?


ListNode odd = head;
ListNode even = head.next;
odd = odd.next = even.next;
even = even.next = odd.next;

使用这一行:odd = odd.next = even.next;even.next分配给odd.next,然后odd.next分配给odd? 还是odd.next分配给odd,然后even.next分配给odd.next

赋值是右关联。这意味着该语句被解释为:

odd = (odd.next = even.next);

这与许多运营商不同。例如减法,1 - 2 - 3(1 - 2) - 3不是1 - (2 - 3)

Java 对 = assignemnts 有从右到左的关联性

请注意,不同的运算符有不同的优先级和关联性。值得一读: https://www.w3adda.com/java-tutorial/java-operator-precedence-and-associativity

。或使用括号以完全清晰

相关内容

  • 没有找到相关文章

最新更新