Lua笔记——1.模块Module

Posted SylvanYan

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Lua笔记——1.模块Module相关的知识,希望对你有一定的参考价值。

身为一名萌新程序员,现在才体会到掌握一两门脚本语言是多么的有用。这段时间深感技术不足,为了对Lua的语法不那么生疏,还是先复习一下,把理解的写下来吧。

Lua 模块——Lua 5.1 开始加入模块管理机制,以require("egModule") 或者 require "egModule",进行简单的调用提前准备好的模块 egModule.lua

PS:自定义模块的加载路径问题暂时保留

egModule模块的书写格式:

--file : egModule.lua
--[[
Lua Code
模块的文件名应该与模块名保持一致
eg: 定义一个名为egModule的模块,文件名为egModule.lua]]--

egModule = {} --1st.初始化egModule模块

egModule.value1 = "Hello" --2nd.定义模块内部的常量
egModule.value2 = "Lua"

function egModule.func1() --3rd.定义可以在外部调用的共有函数
io.write("This is a public function func1.\n")
end

function egModule.func2()
print("This is a public function func2.\n")
end

local function func3() --4th.定义模块内部的私有函数
print("This is a local function func3.\n")
end

local function func4()
io.write("This is a local function fun4.\n")
end

function egModule.func5() --5th.定义共有函数调用模块内部的私有函数
io.write("This is a public function func5.\n")
func3()
func4()
end

return egModule --模块的最后return此模块/table


egModule模块的调用:

直接调用

--file : luaTest.lua
require "egModule"

theValue1 = egModule.value1 --直接调用模块中的常量
theValue2 = egModule.value2

print(theValue1 .."".. theValue2)

egModule.func1() --直接调用模块中的公共方法
egModule.func2()

egModule.func5() --通过公共方法调用模块中的私有方法

别名调用

--file : luaCode.lua
unit = require "egModule" --为模块egModule定义别名unit

print(unit.value1)
print(unit.value2)

unit.func1()
unit.func2()

unit.func5()


技术分享图片




























以上是关于Lua笔记——1.模块Module的主要内容,如果未能解决你的问题,请参考以下文章

lua --- Module

重要Nginx模块之————Lua的Nginx API 常量以及参数介绍 (Lua-Nginx-Module 模块)

Lua 模块与包

Lua 模块与包

lua 模块与包

雷林鹏分享:Lua 模块与包