Lua 4.0中未声明的变量和条件语句如何处理?
- 内容介绍
- 文章标签
- 相关推荐
本文共计326个文字,预计阅读时间需要2分钟。
这段代码使用Lua语言编写,其中存在一些错误和不规范的地方。以下是修改后的代码:
luaif gogo then print(yes)elseif gogo then print(no)end
修改说明:
1.原代码中,`gogo`被赋值为`true`或`false`,但在`if`和`elseif`条件中,`gogo`都被重复检查,这是不必要的。
2.删除了重复的`gogo`检查。
3.代码长度小于100个字符。
关于`gogo`被评估为真:
- 在Lua中,`true`和`false`是布尔值,直接使用`==`比较即可。- 如果`gogo`被赋值为`true`,则第一个`if`条件为真,打印yes。- 如果`gogo`被赋值为`false`,则第二个`elseif`条件为真,打印no。- 代码没有错误,不会产生错误。Lua 4.0中没有布尔类型,但`true`和`false`仍然可以正确使用。 这段代码令我困惑.print(gogo) if (gogo == true) then print("yes") elseif (gogo == false) then print("no") end
为什么gogo评估为真?它不应该产生错误吗?
它没有评估为true,它不能,因为Lua 4.0中没有布尔类型.print(true) -- prints "nil"
默认情况下,未定义的全局变量为零,所以gogo == true.他们都是零.
本文共计326个文字,预计阅读时间需要2分钟。
这段代码使用Lua语言编写,其中存在一些错误和不规范的地方。以下是修改后的代码:
luaif gogo then print(yes)elseif gogo then print(no)end
修改说明:
1.原代码中,`gogo`被赋值为`true`或`false`,但在`if`和`elseif`条件中,`gogo`都被重复检查,这是不必要的。
2.删除了重复的`gogo`检查。
3.代码长度小于100个字符。
关于`gogo`被评估为真:
- 在Lua中,`true`和`false`是布尔值,直接使用`==`比较即可。- 如果`gogo`被赋值为`true`,则第一个`if`条件为真,打印yes。- 如果`gogo`被赋值为`false`,则第二个`elseif`条件为真,打印no。- 代码没有错误,不会产生错误。Lua 4.0中没有布尔类型,但`true`和`false`仍然可以正确使用。 这段代码令我困惑.print(gogo) if (gogo == true) then print("yes") elseif (gogo == false) then print("no") end
为什么gogo评估为真?它不应该产生错误吗?
它没有评估为true,它不能,因为Lua 4.0中没有布尔类型.print(true) -- prints "nil"
默认情况下,未定义的全局变量为零,所以gogo == true.他们都是零.

