1

我很少使用 Lua,所以这可能是一个微不足道的问题,但我只是注意到使用 Lua 5.3.2,在交互式 REPL 中我可以编写例如:

> 1 == 2 or error('numbers not equal')

这就是我在 Bash 或 Perl 中执行错误处理的方式(或者当然左边的语句or在实际代码中会更有用,例如两个变量)。

但是,如果我粘贴1 == 2 or error('numbers not equal')到某个文件中foo.lua,然后lua foo.lualua: foo.lua:1: unexpected symbol near '1'.

我可以接受这是无效的语法,但我觉得很奇怪 REPL 会接受这个语句。有人可以解释这里发生了什么吗?是否有一些关于我在 REPL 中可以做什么而我在脚本中不能做的一般规则?

4

1 回答 1

1

Lua REPL 尝试将输入评估为表达式。(*) 如果成功,它会打印结果。这只是为了方便。

(*) 它通过return在输入之前添加并尝试将其作为脚本运行来实现。

于 2019-04-06T18:15:04.387 回答