盡管Lua被稱為是一種解釋型的語言,但Lua確實允許在運行源代碼之前,將源代碼預編譯成一種中間形式(類比Python的.pyc)。區別解釋型語言的主要特征在于編譯器是否是語言運行時庫的一部分,即是否有能力執行動態生成的代碼(Lua可以通過dofile執行Lua代碼)。
其實,dofile的核心功能是由loadfile完成的,可以這樣來定義dofile:
loadfile并不是執行代碼,而只是編譯,返回一個函數,由dofile執行。
如果多次運行一個文件,可以只調用一次loadfile,重復調用其返回的函數即可。
另外一個函數,loadstring從字符串加載代碼:
新聞熱點
疑難解答