条件评估不正确 (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,都是真实的。
在你的代码中,
false
和 true
被解释为未定义的全局变量,因此都计算为 nil。因此,loadHW1 == true
变为 nil == nil
,这是正确的,因此 ternary
收到 1 cond
。
如果要在Lua4中使用false
和true
,定义如下:
false = nil
true = 1
我正在尝试在 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,都是真实的。
在你的代码中,
false
和 true
被解释为未定义的全局变量,因此都计算为 nil。因此,loadHW1 == true
变为 nil == nil
,这是正确的,因此 ternary
收到 1 cond
。
如果要在Lua4中使用false
和true
,定义如下:
false = nil
true = 1