簡體   English   中英

REPL 和腳本之間的 Lua 語法規則有何不同?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM