gpt4 book ai didi

lua - 混合逻辑和关系运算符的评估顺序?

转载 作者:行者123 更新时间:2023-12-01 11:38:41 27 4
gpt4 key购买 nike

Lua 将这个格式不正确的表达式解释为什么?

返回 1 或 2 == 3 和 4 -> 1

当然不是从左到右遍历每个运算符:

返回(1 或 2)== 3 和 4 -> false

它是反向求值吗?

最佳答案

您可能习惯于具有不同优先级的算术运算符。例如,如果我们编写 1 + 2 * 3,它假定乘法在加法之前,如 1 + (2 * 3) 中那样,而不是从左到右求值在 (1 + 2) * 3 中。大多数编程语言都使用这些标准数学优先级。我能想到的唯一值得注意的反例是 Smalltalk,它总是从左到右求值,以及强制您明确优先级的语言(LISP 和 Forth)。

至于关系运算符和 bool 运算符,编程语言习惯于扩展传统的算术优先级以涵盖该语言中的所有运算符。 Lua 的完整优先级表可以在这里找到:

http://www.lua.org/manual/5.2/manual.html#3.4.7

 or
and
< > <= >= ~= ==
..
+ -
* / %
not # - (unary)
^

bool 运算符 andor 运算符的优先级最低,因此 1 or 2 == 3 and 4 将被解析为 1 或 ((2 == 3) 和 4)

关于lua - 混合逻辑和关系运算符的评估顺序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24436469/

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