[英]How do Lua syntax rules differ between REPL and scripts?
我很少使用 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 中可以做什么而在腳本中不能做什么,是否有一些一般規則?
Lua REPL 嘗試將輸入計算為表達式。(*) 如果成功,則打印結果。 這只是為了方便。
(*) 它通過預先return
輸入並嘗試將其作為腳本運行來實現。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.