ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

Lua require的使用

2022-07-30 14:31:22  阅读:220  来源: 互联网

标签:function end lua -- require Lua 使用 print


一、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

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有