Lua模块

简介

模块是Lua中的一种特有的数据结构,

类似于C中的头文件,类似于java中的类,

有利于代码的重用和降低代码耦合度,

模块文件主要由table组成,在table中添加相应的变量和函数

其他文件在使用模块时,需要用require导入

(1)定义一个模块

模块文件名一般于其声明的table名称一致

新建一个lua文件,命名为rectangle,用于计算图形

--声明一个模块
rectangle = {}

--为模块添加一个变量
rectangle.pi =3.14

--w为模块添加函数(求周长)
function rectangle.perimeter(a,b)
	return a + b
end

--以匿名函数方式为模块添加一个函数(求面积)

rectangle.area = function(a,b)
	return a * b
end

return rectangle

(2)调用模块

--导入一个模块
require 'rectangle'

--访问模块,调用函数

print(rectangle.pi)
print(rectangle.perimeter(3,5))
print(rectangle.area(3,5))

结果

还可以通过table接收模块的返回值来使用模块

--导入一个模块
rect = require 'rectangle'

--访问模块,调用函数

print(rect.pi)
print(rect.perimeter(3,5))
print(rect.area(3,5))

结果

在模块中还可以定义与模块无关的内容,如全局变量,局部变量,全局函数,局部函数

新建一个名为 'rectangle.lua'的lua文件

--定义与模块无关的内容

--声明一个模块
rectangle = {}

--定义一个全局变量
glodenRatio = 0.618

--定义一个局部变量
local e = 2.718

--定义一个局部函数(求圆的面积)
local function circularArea(r)
	return rectangle.pi * r *r
end

--定义一个全局函数(求矩形中最大圆的面积)
function maxCirculArea(a,b)
	local r = math.min(a,b) / 2
	return circularArea(r)
end

--返回这个table
return rectangle

访问与模块无关的内容

--访问与模块无关的内容
require 'rectangle'
print(glodenRatio)
print(maxCirculArea(3,5))

结果

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值