local func = loadfile("mode_name") func()
loadfile 函数会将代码编译成中间码,并且将编译后的chunk作为一个函数返回,而不执行代码。
另外,loadfile不会抛出错误信息,而是返回错误码。
dofile("model_name.lua")
dofile 函数读入文件、编译,然后执行,它实际上是对loadfile的封装:
function dofile(filename) local f = assert(loadfile(filename)) return f() end
loadstring 函数与loadfile类似,不过它不是从文件里读入chunk,而是从一个字符串中读入,例如:
f = loadstring("i=i+1") i = 0 f();print(i) -- 1 f();print(i) -- 2
Lua把每一个chunk都作为一个匿名函数处理。
require("model_name")
require 函数载入model_name.lua文件,载入的同时直接执行该文件,注意:只有第一次载入的时候会去执行。
与dofile不同的是,require提供了2个功能:
1、搜索目录加载文件;
2、判断文件是否已加载,避免重复加载。
原文:http://www.cnblogs.com/chenny7/p/3634469.html