loadfile:
1>编译代码成中间码并且返回编译后的chunk作为一个函数,而不执行代码
2>在发生错误的情况下,不会抛出异常,但会返回nil和错误信息
3>运行一个文件多次的话,只需要编译一次,但可多次运行
dofile:
1>是对loadfile的一层包装,根据loadfile的返回函数运行一遍
2>运行一个文件多次的话,每次都需要编译
require:
1>粗略的说,require 与 dofile 一样,但是有两点差别
a.require会搜索目录加载文件
b.require会判断是否文件已经加载避免重复加载同一文件
参考:《Lua程序设计第二版》