条件评估不正确 (Lua 4)

Condition evaluating incorrectly (Lua 4)

我正在尝试在 Lua 4:

中使用此功能
function ternary(cond, T, F)
    if cond then return T else return F end
end

在此上下文中:

loadHW1 = false
print(ternary(loadHW1 == true, "this should not appear", nil))

但是,当我期望结果为 nil 时,文本总是被打印出来。我究竟做错了什么?谢谢。

[编辑]

我切换到这个但仍然得到“这是真的”结果:

loadHW1 = 0
print(ternary(loadHW1, "this is true", "this is false"))

Lua 4 没有布尔值:它们是在 Lua 5.

中引入的

在Lua4中,只有nil为false;其他所有内容,包括 0,都是真实的。

在你的代码中, falsetrue 被解释为未定义的全局变量,因此都计算为 nil。因此,loadHW1 == true 变为 nil == nil,这是正确的,因此 ternary 收到 1 cond

如果要在Lua4中使用falsetrue,定义如下:

false = nil
 true = 1