其他分享
首页 > 其他分享> > Lua require的使用

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