无涯教程-Lua - Modules(模块)

news2025/1/16 17:49:07

模块就像可以使用 require 加载的库,并且具有包含Table的单个全局名称,该模块可以包含许多函数和变量。

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")

让无涯教程考虑一个简单的示例,其中一个函数具有数学函数。将此模块称为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	

现在,为了在另一个文件(如moduletutorial.lua)中访问此Lua模块,您需要使用以下代码段。

mymathmodule=require("mymath")
mymathmodule.add(10,20)
mymathmodule.sub(30,20)
mymathmodule.mul(10,20)
mymathmodule.div(30,20)

为了运行此代码,需要将两个Lua文件放置在同一目录中,或者可以将模块文件放置在包路径中。当运行上面的程序时,将得到以下输出。

30
10
200
1.5

旧方法实现

现在以较旧的方式重写相同的示例,该示例使用package.seeall实现类型。这在Lua 5.1和5.0版本中使用过。 mymath模块如下所示。

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进行编程的SDK(如Corona SDK)已弃用此方法。

Lua - Modules(模块) - 无涯教程网无涯教程网提供模块就像可以使用 require 加载的库,并且具有包含Table 的单个全局名称,该模块可以...https://www.learnfk.com/lua/lua-modules.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/829743.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

js 获取指定时间+时间戳展示时分秒

开发中遇见了一个客户比较扯淡的需求 明明有可以选择时分秒的操作非不要就要懒省事,必须是一个时间显示成选中的年月日,但是时间格式要给后端传待时分秒的格式,列表展示也要带时分秒。 所以就处理了 let DATE: any new Date(); // 当前日期l…

ctfshow----php特性(89-104)

目录 web89 preg_match函数 、数组 web90 intval()函数、强比较 web91 正则修饰符 web92 intval()函数、弱比较 web93 八进制、小数点 web94 strpos() 函数、小数点 web95 小数点 web96 highlight_file() 下的目录路径 web97 数组 web98 三目运算符 web9…

SFP和1×9光模块的区别对比

随着网络技术的不断发展,光纤通信作为一种高速、高带宽的传输方式,得到了广泛应用。SFP和19光模块是两种常见的低速光模块,它们在性能和应用方面也存在着一些区别。本文易天光通信将对SFP和19光模块进行对比,探讨它们的特点、优势…

共建数据未来,解密CIO的所思、所惑、所愿

‍数据智能产业创新服务媒体 ——聚焦数智 改变商业 在当前快速变化的商业环境中,企业首席信息官(CIO)的角色已经从以往的技术专家转变为战略决策者和创新推动者。随着全球数字化转型步伐的加速,CIO们扮演着至关重要的角色&#…

无人机电力巡检方案在电网安全与维护中的应用

目前,无人机技术已经在各行各业都有广泛的应用,其中之一就是在电力巡检中的应用。无人机电力巡检方案以其高效、安全、精准的特点,为电网安全与维护带来了重大突破和进步。 一、无人机电力巡检方案是高效巡检的利器 传统的电力巡检方式需要人…

ClickHouse使用阿里云服务相关

目录 概念相关问题查看阿里云文档ClickHouse相关Clickhouse分布式表应用修改点 概念 1.阿里云架构 2.节点 节点是逻辑概念,其架构也说明了集群默认包含1个或多个节点,或者说是分片(shard) 节点下包含一个或者多个服务器,具体包含几个&#…

Java限流算法实现与应用(计数器、漏桶、令牌桶、滑动窗口)

文章目录 一、什么是限流算法二、计数器算法1、概述2、Java实现计数器算法3、优缺点4、应用 三、漏桶算法1、概述2、Java实现漏桶算法3、优缺点4、应用 四、令牌桶算法1、概述2、Java实现令牌桶算法3、应用 五、滑动窗口算法1、概述2、Java实现滑动窗口算法3、应用 参考资料 一…

MySQL 重置root 密码

5.7 版本 首先要把服务mysql57 关闭 net stop MySQL57 在安装的mysql57的程序的bin中 运行cmd(管理员运行) mysqld --defaults-file‘mysql存放数据的位置\my.ini’ --skip-grant-tables 上图 错误 注意:如果遇到mysqld: Can’t change dir…

【FAQ】视频监控EasyCVR修改参数报错“database or disk is full”排查

EasyDarwin开源流媒体视频EasyCVR安防监控平台可提供视频监控直播、云端录像、云存储、录像检索与回看、智能告警、平台级联、云台控制、语音对讲、智能分析等能力。视频监控综合管理平台EasyCVR具备视频汇聚融合能力,平台基于云边端一体化架构,具有强大…

伯俊ERP和金蝶云星空单据接口对接

伯俊ERP和金蝶云星空单据接口对接 对接源平台:金蝶云星空 金蝶K/3Cloud在总结百万家客户管理最佳实践的基础上,提供了标准的管理模式;通过标准的业务架构:多会计准则、多币别、多地点、多组织、多税制应用框架等,有效支持企业的运…

太魔幻了!计算机就业哀鸿遍野,而高考生疯狂涌向计算机专业

在张雪峰推荐的几大专业里,计算机专业是其中之一。近几年,计算机专业报考热度不减,但就业前景却令人堪忧,互联网裁员接二连三,许多码农找不到工作。 一位网友感叹:一边是计算机就业哀鸿遍野,一…

网络安全进阶学习第十一课——MySQL手工注入(2)

文章目录 一、UA注入1、原理2、靶场演示:1)一旦页面出现如下现状,就可以使用UA注入2)BP抓包3)修改User-Agent 二、referer注入1、原理2、靶场演示:1)使用BP抓包2)修改Referer 三、DN…

双比例阀控制器PVC-D2-25A-1X

两路独立工作、PQ独立控制、4/3比例方向阀控制、并联控制、输入指令0到10V输入接口,可切换为0(4)到20mA输入、工作电压DC24V、、、在放大器试运行前,应确保印刷电路板上SW 开关的功能设置符合相应的使用情况。放大器只有在断电后才可接线和改变SW 开关的…

QT - 建立页面

一、生成页面 二、实现 1.LineEdit 是一个单行输入文本框,为用户提供了比较多的编辑功能,例如选择复制、粘贴。 修改echomode属性为password Push Button(常规按钮) 三、程序 声明全局变量,属于MainWindow private: // 定义了一个指向Ma…

【ASP.NET MVC】MYSQL安装配置(4)

一、安装配置 1、下载MYSQL绿色版压缩包(略) 2、解压到目录,比如E:\mysql目录 3、设置环境变量 添加bin目录到path,方便运行Mysql的命令 先打开系统的《环境变量》配置 双击系统变量中的Path 添加Mysql的BIN目录到path: 4、在…

两个镜头、视野、分辨率不同的相机(rgb、红外)的视野校正

文章目录 背景实际效果查找资料资料1资料2 解决方案最终结果 背景 目前在做的项目用到两个摄像头,一个是热成像摄像头、另一个是普通的rgb摄像头。 一开始的目标是让他们像素级重合,使得点击rgb图像时,即可知道其像素对应的温度。但是在尝试…

GPU 容器虚拟化新能力发布和全场景实践

今天给大家分享的主题是百度智能云在「GPU 容器虚拟化」方面的最新进展和全场景实践,希望通过这次分享和大家一起探讨如何在实际业务场景更好的应用 GPU 容器虚拟化技术。 本次分享将首先介绍百度智能云 GPU 容器虚拟化 2.0 的升级变化,然后介绍新版本中…

pycharm——漏斗图

import pyecharts.options as opts from pyecharts.charts import Funnel""" Gallery 使用 pyecharts 1.1.0 参考地址: https://echarts.apache.org/examples/editor.html?cfunnel目前无法实现的功能:1、暂时无法对漏斗图的长宽等范围操作进行修改 ""…

销售管理怎么做?(企业老板销售负责人必看)

阅读本文您可以了解:1、销售管理的定义;2、销售管理的重要性;2、如何做好销售管理。 大家好,作为一名有着十年销售经验的顾问,今天就和大家聊聊怎么做好销售管理。 一、销售管理的定义 销售管理是一种组织和规划销售…

移动硬盘格式化,一招搞定!

“新买了个移动硬盘,才将一些文件保存进去。今天将移动硬盘与电脑连接后,却提示我只能将它格式化,否则无法使用。这是为什么呢?硬盘格式化怎么操作呢?” 在使用移动硬盘的时候,可能会由于各种原因&#xff…