显然,or
和 and
在 NetLogo 中具有相同的优先级。 (参见编程手册中的 Syntax。)而且,它们显然是左关联的。所以
true or true and false
返回false
。
这个决定有理由吗?
(算术运算符具有正常优先级。)
最佳答案
许多编程语言给予和
的优先级高于或
。正如您所见,NetLogo 没有。
该决定无疑早于 2011 年 NetLogo 开源。
我不能完全确定,但我很确定这个决定早于我参与 NetLogo(始于 2001 年)。我不记得在接下来的几年里有人问过这个问题。
很可能没有人知道这是否是有意识的决定的产物,或者是什么。 (很有可能它只是从 StarLogoT 复制而来,这将使最初的选择更加陷入过去的昏暗深处。)
提高 和
的优先级对我来说似乎是一个合理的改变。也许曾经有人担心与 StarLogoT 或 UCB Logo 的兼容性,但这已经不重要了。如今,任何兼容性问题都与现有的 NetLogo 代码有关。
关于netlogo - `or` 和 `and` 在 NetLogo 中具有相同的优先级,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48734576/