Lua 4.0未声明的变量和条件语句

pos*_*n12 4 lua conditional-statements lua-4.0

这段代码令我困惑.

print(gogo)
if (gogo == true) then
    print("yes")
elseif (gogo == false) then
    print("no")
end
Run Code Online (Sandbox Code Playgroud)

为什么要gogo评估true?它不应该产生错误吗?

小智 6

它没有评估为true,它不能,因为Lua 4.0中没有布尔类型.

print(true) -- prints "nil"
Run Code Online (Sandbox Code Playgroud)

nil默认情况下,未定义的全局变量确实如此gogo == true.他们都是nil.

  • 哎呀!似乎直到Lua 5才添加"真实"和"假"关键字. (2认同)