Lua编译与运行

2015-4-12 杜世伟 Lua

   Lua是解释性语言,但Lua会首先把代码预编译成中间码然后再执行。不要以为需要编译就不是解释型语言,Lua的编译器是语言运行时的一部分,所以,执行编译产生中间码速度会更快。

  dofile/dostring和loadfile/loadstring的区别:

  (1)do*会编译并执行;load*只编译代码生成中间码并且返回编译后的chunk作为一个函数,但不执行代码。

  (2)load*较为灵活,发生错误时load*会返回nil和错误信息(可以打印出来)。

  (3)如果要运行一个文件多次,load*只需要编译一次,但可以多次运行,do*每次都需要编译。

  (4)dostring(str)等价于loadstring(str)()

阅读全文>>

标签: lua loadstring dofile dostring loadfile

评论(0) 浏览(4535)

Powered by emlog 沪ICP备2023034538号-1