Я редко использую 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.lua
, что приводит к lua: foo.lua:1: unexpected symbol near '1'
.
Я могу согласиться с тем, что это неверный синтаксис, но я нахожу очень странным, что REPL все же примет это утверждение.Может кто-нибудь объяснить, что здесь происходит?Есть ли какие-то общие правила относительно того, что я могу сделать в REPL, что я не могу сделать в сценарии?