Lua require的使用
作者:互联网
一、require的作用
加载指定的模块,可以使用模块中的全局函数和全局数据(如表等等)
注:实际上require “xxx”后,会将xxx中的全局函数和数据放到表_G中,所以也就能访问了
二、require的返回值
require “xxx” 某个模块后
1.如果该模块自身有返回值,且模块加载成功,那么require 的返回值就是该模块的返回值
2.如果模块没有返回值,如果require加载模块成功,就返回ture
3.require 内部将返回值储存在:package.loaded表中。
(即:package.loaded[xxx]中)
三、例子
目录结构
/a.lua
require('b') -- 引入 b.lua
require('test.c') -- 引入 test 目录下的 c.lua
print(b) -- hello from b.lua file
print(c) -- table: 011372B0 这里 c.lua 中存在一个 c 的table ,b.lua 中存在一个 c 的值 就近原则这里输出的是 c.lua 中的 c
a() -- b.lua: function a
-- b 方法是 local 的 访问时会报错 attempt to call a string value (global 'b')
-- print(b())
local function a( ... )
-- body
print("a.lua:","function a")
end
a() -- a.lua: function a 这里同样说明就近原则
c:c4() -- c.lua: function c4
c1() -- c.lua: funtion c1
c3() -- c.lua: funtion c1 c.lua: funtion c2
/b.lua
b = "hello from b.lua file"
c = 1
-- 被引用的使用会执行
print("b.lua be require")
function a( ... )
-- body
print("b.lua:","function a")
end
-- 外部不能访问 local 修饰的值 和方法
local function b( ... )
-- body
print("b.lua:","function b")
end
/test/c.lua
-- 被引用的使用会执行
print("c.lua be require")
c = {}
function c1( ... )
-- body
print("c.lua:","funtion c1")
end
local function c2( ... )
-- body
print("c.lua:","funtion c2")
end
function c3( ... )
-- body
c1()
c2()
a() -- b.lua: function a 这里没有访问到比较近的 a.lua 中的 a 方法 说明 local 外部是不能访问到的
end
function c:c4( ... )
-- body
print("c.lua:","function c4")
end
运行 a.lua 程序 输出:
标签:function,end,lua,--,require,Lua,使用,print 来源: https://www.cnblogs.com/qvchuang/p/16534910.html