什么是模块?
模块是一个像,可以使用需要加载并有包含表中的单个全局命名的库。该模块可包含若干函数和变量。所有这些函数和变量被包裹在以它作为一个命名空间的表。也是一个很乖的模块有必要的规定,返回此表上所需要的。
Lua模块
表中的模块的使用可以帮助我们以多种方式,使我们能够操纵模块中我们操纵任何其他lua的表相同的方式。作为操纵模块的能力的结果,它提供了额外的功能的量等语言需要特殊的机制。由于lua模块,这个免费的方式下,用户可以调用Lua函数以多种方式。如下面几个:
复制代码 代码如下:-- Assuming we have a module printFormatter
-- Also printFormatter has a funtion simpleFormat(arg)
-- Method 1
require "printFormatter"
printFormatter.simpleFormat("test")
-- Method 2
local formatter = require "printFormatter"
formatter.simpleFormat("test")
-- Method 3
require "printFormatter"
local formatterFunction = printFormatter.simpleFormat
formatterFunction("test")
在上面的示例代码中,可以看到如何灵活的编程Lua是没有任何特殊的额外的代码。
函数规定
Lua提供了一个名为规定加载所有必要的模块高级函数。它被保持尽可能的简单,以避免对模块太多的信息,以将其加载。该规定函数只是假定模块作为一个代码块定义一些值,这实际上是函数或者包含函数表。
示例
让我们考虑一个简单的例子,其中一个函数具有数学运算功能,并允许调用此模块作为mymath和文件名是mymath.lua。该文件的内容如下。
复制代码 代码如下:local mymath = {}
function mymath.add(a,b)
print(a+b)
end
function mymath.sub(a,b)
print(a-b)
end
function mymath.mul(a,b)
print(a*b)
end
function mymath.div(a,b)
print(a/b)
end
return mymath
现在为了访问该lua模块中的另一个文件moduletutorial.lua,则如下所示。
复制代码 代码如下:mymathmodule = require("mymath")
mymathmodule.add(10,20)
mymathmodule.sub(30,20)
mymathmodule.mul(10,20)
mymathmodule.div(30,20)
为了运行这些代码,我们需要把在同一个目录下2 个lua文件,或者也可以放在包路径的模块文件,并需要产生额外的设置。当我们运行上面的程序,会得到下面的输出。
复制代码 代码如下:30
10
200
1.5
需要记住的事情
- 将模块在同一个目录下运行该文件。
- 模块名称和它的文件名必须是相同的。
- 这是返回模块规定函数,因此该模块也可以实现较好如上图所示,就算能找到其他类型的实现别的地方的最佳实践。
实现模块的老办法
现在重新编写相同的例子,其中使用包旧的方式。查看所有类型的实现。这是在使用Lua版本5.1和5.0。math模块如下所示。
复制代码 代码如下:module("mymath", package.seeall)
function mymath.add(a,b)
print(a+b)
end
function mymath.sub(a,b)
print(a-b)
end
function mymath.mul(a,b)
print(a*b)
end
function mymath.div(a,b)
print(a/b)
end
moduletutorial.lua模块的使用情况如下所示。
复制代码 代码如下:require("mymath")
mymath.add(10,20)
mymath.sub(30,20)
mymath.mul(10,20)
mymath.div(30,20)
当我们运行上面,我们会得到相同的输出。但建议在使用代码的旧版本,它被认为不太安全。使用Lua中像Corona SDK 编程的许多软件开发工具包已经过时。
免责声明:本站资源来自互联网收集,仅供用于学习和交流,请遵循相关法律法规,本站一切资源不代表本站立场,如有侵权、后门、不妥请联系本站删除!
RTX 5090要首发 性能要翻倍!三星展示GDDR7显存
三星在GTC上展示了专为下一代游戏GPU设计的GDDR7内存。
首次推出的GDDR7内存模块密度为16GB,每个模块容量为2GB。其速度预设为32 Gbps(PAM3),但也可以降至28 Gbps,以提高产量和初始阶段的整体性能和成本效益。
据三星表示,GDDR7内存的能效将提高20%,同时工作电压仅为1.1V,低于标准的1.2V。通过采用更新的封装材料和优化的电路设计,使得在高速运行时的发热量降低,GDDR7的热阻比GDDR6降低了70%。
更新日志
- 凤飞飞《我们的主题曲》飞跃制作[正版原抓WAV+CUE]
- 刘嘉亮《亮情歌2》[WAV+CUE][1G]
- 红馆40·谭咏麟《歌者恋歌浓情30年演唱会》3CD[低速原抓WAV+CUE][1.8G]
- 刘纬武《睡眠宝宝竖琴童谣 吉卜力工作室 白噪音安抚》[320K/MP3][193.25MB]
- 【轻音乐】曼托凡尼乐团《精选辑》2CD.1998[FLAC+CUE整轨]
- 邝美云《心中有爱》1989年香港DMIJP版1MTO东芝首版[WAV+CUE]
- 群星《情叹-发烧女声DSD》天籁女声发烧碟[WAV+CUE]
- 刘纬武《睡眠宝宝竖琴童谣 吉卜力工作室 白噪音安抚》[FLAC/分轨][748.03MB]
- 理想混蛋《Origin Sessions》[320K/MP3][37.47MB]
- 公馆青少年《我其实一点都不酷》[320K/MP3][78.78MB]
- 群星《情叹-发烧男声DSD》最值得珍藏的完美男声[WAV+CUE]
- 群星《国韵飘香·贵妃醉酒HQCD黑胶王》2CD[WAV]
- 卫兰《DAUGHTER》【低速原抓WAV+CUE】
- 公馆青少年《我其实一点都不酷》[FLAC/分轨][398.22MB]
- ZWEI《迟暮的花 (Explicit)》[320K/MP3][57.16MB]