文件加载
loadstring:加载字符串,返回函数 5.3版本没有这个函数了
local f = loadstring('print("helol world")')
print(type(f))
f()
loadfile:加载文件,返回函数
local f = loadfile("Car.lua")
print(type(f))
local Car = f()
local car = Car:new()
car:speak()
dofile:执行文件(相当于loadfile和函数调用的结合)(不推荐使用)
local Car = dofile("Car.lua")
local Car = dofile("Class/Car.lua")
dofile("../Car.lua")
require:请求文件,所有的文件路径都存储在package.path中
local Car = require("Car")
require "Car"
require "class.Car"
dofile和require的区别:
- dofile加载文件次数和执行次数相同
- require加载相同目录文件时只执行一次
package.path
print(package.path)
package.path = package.path .. ";./Class/?.lua"
require "Car"
print(package.path)