与
require()
功能相同,但具有一定程度的自动化特性。
假设有如下的目录结构:
app/
app/classes/
app/classes/myclass.luaapp/classes/myclassbase.luaapp/classes/data/data1.luaapp/classes/data/data2.lua
myclass
中需要载入
myclassbase
和
myclassdata。如果用
require(),myclass
内的代码如下:
local
myclassbase
=
require("app.classes.myclassbase")
local
myclass
=
class("myclass",
myclassbase)
local
data1
=
require("app.classes.data.data1")
local
data2
=
require("app.classes.data.data2")
假如将
myclass
及其相关文件换一个目录存放,那么就必须修改
myclass
中的
require()
命令,否则将找不到模块文件。
而使用
import(),只需要如下写:
local
myclassbase
=
import(".myclassbase")
local
myclass
=
class("myclass",
myclassbase)
local
data1
=
import(".data.data1")
local
data2
=
import(".data.data2")
当在模块名前面有一个"."
时,import()
会从当前模块所在目录中查找其他模块。因此
myclass
及其相关文件不管存放到什么目录里,都不再需要修改
myclass
中的
import()
命令。这在开发一些重复使用的功能组件时,会非常方便。