无涯教程-Lua - 函数声明

news2024/12/26 23:37:44

函数是一起执行任务的一组语句,您可以将代码分成单独的函数。

Lua语言提供了程序可以调用的许多内置方法。如方法 print()打印在控制台中作为输入传递的参数。

定义函数

Lua编程语言中方法定义的一般形式如下-

optional_function_scope function function_name( argument1, argument2, argument3........, argumentn)
    function_body
    return result_params_comma_separated
end

Lua编程语言中的方法定义由方法标头和方法主体组成。这是方法的所有部分-

  • Optional_function     - 可选,默认为global,您可以使用关键字 local 来定义为局部函数。

  • function                        - 这是函数的实际名称。

  • arguments                    - 参数就像一个占位符,调用函数时,将一个值传递给参数,此值称为实际参数或自变量。

  • function_body             - 方法主体包含用于定义方法函数的语句的集合。

  • return                            - 在Lua中,可以通过在return关键字后面加上逗号分隔的返回值来返回多个值。

以下是名为 max()的函数的源代码。此函数采用两个参数num1和num2,并返回两个参数之间的最大值-

--[[ function returning the max between two numbers --]]
function max(num1, num2)

   if (num1 > num2) then
      result = num1;
   else
      result = num2;
   end

   return result; 
end

调用函数

在创建Lua函数时,您需要定义函数的函数。要使用方法,您将必须调用该函数来执行定义的任务。

要调用方法,您只需要传递所需的参数以及方法名称,并且如果该方法返回一个值,则可以存储返回的值。如-

function max(num1, num2)

   if (num1 > num2) then
      result = num1;
   else
      result = num2;
   end

   return result; 
end

-- calling a function
print("The maximum of the two numbers is ",max(10,4))
print("The maximum of the two numbers is ",max(5,6))

当无涯教程运行上面的代码时,将获得以下输出。

The maximum of the two numbers is 	10
The maximum of the two numbers is 	6

传递函数

在Lua中,可以将函数分配给变量,也可以将它们作为另一个函数的参数传递。这是在Lua中分配和传递函数作为参数的简单示例。

myprint = function(param)
   print("This is my print function -   ##",param,"##")
end

function add(num1,num2,functionPrint)
   result = num1 + num2
   functionPrint(result)
end

myprint(10)
add(2,5,myprint)

当运行上面的代码时,将获得以下输出。

This is my print function -   ##	10	##
This is my print function -   ##	7	##

函数变量

可以使用...作为参数在Lua中使用可变参数创建函数,在该示例中该函数将返回平均值并且接受可变参数。

function average(...)
   result = 0
   local arg = {...}
   for i,v in ipairs(arg) do
      result = result + v
   end
   return result/#arg
end

print("The average is",average(10,5,3,4,5,6))

当无涯教程运行上面的代码时,将获得以下输出。

The average is	5.5

Lua - 函数声明 - 无涯教程网无涯教程网提供函数是一起执行任务的一组语句,您可以将代码分成单独的函数。Lua语言提供了程序可以...https://www.learnfk.com/lua/lua-functions.html

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

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

相关文章

【Golang 接口自动化05】使用yml管理自动化用例

目录 YAML 基本语法 对象:键值对的集合(key:value) 数组:一组按顺序排列的值 字面量:单个的、不可再分的值(数字、字符串、布尔值) yml 格式的测试用例 定义yml文件 创建结构体 读取yml文件中的用例数据 调试…

一起学算法(顺序表篇)

概念: 1.顺序表的定义 用一段地址连续的存储单元依次存储数据的线性表被称为数据表,在Java中顺序表一般是数组或者是ArrayList实现的 先把代码放这里,接下来一一给大家进行讲解: public class SeqList {private Object[] data;…

HTML 初

前言 HTML的基本骨架 HTML基本骨架是构建网页的最基本的结果。 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0">…

Chisel-Strike:一款功能强大的.NET异或XOR加密CobaltStrike Aggressor实现

## 关于Chisel-Strike Chisel-Strike是一款功能强大的.NET异或XOR加密CobaltStrike Aggressor实现&#xff0c;该工具主要针对的是 Chisel&#xff08;一个通过HTTP实现的快速TCP/UDP信道&#xff09;&#xff0c;旨在实现运行速度更快的代理以及更加高级的Socks5功能。 根据…

新能源汽车下半场,“哪吒”们还有机会吗?

【潮汐商业评论/原创】 “现在油价太贵了&#xff0c;上班都快开不起车了。同事Andy买了辆新能源&#xff0c;在家充满电也就40多块钱&#xff0c;可以跑500多公里&#xff0c;我加200的油&#xff0c;还没人家跑得多。已经在考虑要不要换辆新能源汽车了。”Allen无奈道。 在…

运营商的风控难题该如何破解?

一、运营商难题 01 黑产养卡 这个产业是运营商独有的难题&#xff1a;部分虚拟运营商走线上渠道吸引用户效果不理想&#xff0c;为盲目追求用户数字&#xff0c;便利用线下渠道养卡&#xff0c;即兜售给卡贩子&#xff0c;由此滋生了非实名卡、黑卡等乱象。 “养卡”又称“假…

接口自动化测试-Postman+Newman+Git+Jenkins实战集成(详细)

目录&#xff1a;导读 前言一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结&#xff08;尾部小惊喜&#xff09; 前言 1、Postman 创建…

100个精选Python实战项目案例,在线无偿分享

前言 嗨喽~大家好呀&#xff0c;这里是魔王呐 ❤ ~! 随着 Python 语言的流行&#xff0c;越来越多的人加入到了 Python 的大家庭中。 为什么这么多人学 Python &#xff1f; 我要喊出那句话了&#xff1a;“人生苦短&#xff0c;我用 Python&#xff01;”&#xff0c; 正是…

PyTorch(安装及卸载)

目录 1. 安装 2. 卸载 参考文献 为什么用PyTorch&#xff1a;简单来说&#xff0c;19年之前tensorflow是大哥&#xff0c;19年tensorflow和PyTorch双龙并行&#xff0c;20年之后PyTorch一往无前。宗旨&#xff0c;哪个用的人多用哪个。 1. 安装 1. 先打开Anaconda Prompt&…

专为工业环境设计的高性能网络设备(4G工业路由器)

4G工业路由器顾名思义它是一种专为工业环境设计的高性能网络设备。它采用了4G通信技术&#xff0c;可以实现高速稳定灵活拓展的无线网络连接&#xff0c;满足工业领域对数据传输的需求。这种路由器具有坚固耐用的外壳&#xff0c;能够抵抗恶劣的工作环境&#xff0c;如高低温、…

谨防数据泄露!“即刻PDF阅读器”内置后门收集用户隐私

近期&#xff0c;火绒安全团队发现 “即刻PDF阅读器” 内置后门程序&#xff0c;该后门程序会在用户不知情的情况下&#xff0c;从C&C服务器上下载恶意配置文件&#xff0c;再根据配置文件下载恶意模块到用户电脑中。目前发现该病毒会肆意收集用户个人隐私信息&#xff0c;…

决策树的划分依据之:信息增益率

在上面的介绍中&#xff0c;我们有意忽略了"编号"这一列.若把"编号"也作为一个候选划分属性&#xff0c;则根据信息增益公式可计算出它的信息增益为 0.9182&#xff0c;远大于其他候选划分属性。 计算每个属性的信息熵过程中,我们发现,该属性的值为0, 也就…

学习记录——CFNet

CFNet: Cascade Fusion Network for Dense Prediction 一种新颖的多尺度融合方法 CVPR 2023   现有的SOTA方法通常先通过主干网络提取多尺度特征&#xff0c;然后通过轻量级模块&#xff08;如 FPN&#xff09;融合这些特征。然而&#xff0c;我们认为通过这样的范例来融合多…

常见的用户行为路径分析方法

用户行为路径分析&#xff0c;一方面可视化用户流向&#xff0c;对海量用户的行为习惯形成宏观了解&#xff1b;另一方面是定位影响转化的主要因素&#xff0c;使产品的优化与改进有的放矢。如果没有用户行为路径分析&#xff0c;会让我们不能获得用户的及时反馈信息&#xff0…

使用HBuilder-X创建uniapp项目并启动演示

前言 课前准备&#xff1a;需要安装有HBuilder-X软件以及谷歌、火狐等浏览器。 官方网址&#xff1a;https://www.dcloud.io/ 一、创建项目 依次点击文件->新建->项目&#xff1a; 接着&#xff1a; 点击uni-app填写项目名称选择项目路径选择项目模版&#xff0c;我…

Java里的static import使用小结

Java里的static import使用小结 换了工作要把Java重新捡起来了&#xff0c;这个在大学里用过的语言&#xff0c;虽然不复杂&#xff0c;还是有一些奇怪的地方的。比如static Slgluimport。 Static import是JDK 1.5中引进的特性&#xff0c;不过读大学那会还真没注意到。它的作…

记一次使用gophish开展的钓鱼演练

这周接到客户要求&#xff0c;组织一次钓鱼演练&#xff0c;要求是发送钓鱼邮件钓取用户账号及个人信息。用户提交后&#xff0c;跳转至警告界面&#xff0c;以此来提高客户单位针对钓鱼邮件的防范意识。 与客户沟通后得知他们企业内部是由邮箱网关的&#xff0c;那么就意味着…

类的实例化

类的实例化 class Date { public:void Init(int year, int month, int day){_year year;_month month;_day day;}private:int _year;int _month;int _day; //这只是函数的一个声明并没有定义 };上面是一个类&#xff0c;我们可以把有花括号括起来的叫做一个域&#xff…

python scrapy框架实现某品牌数据采集

某品牌数据采集 采集需求 地址&#xff1a;http://www.winshangdata.com/brandList 需求&#xff1a;用scrapy框架采集本站数据&#xff0c;至少抓取5个分类&#xff0c;数据量要求5000以上 采集字段&#xff1a;标题、创建时间、开店方式、合作期限、面积要求 网页分析 …

HawkEye设备智能维保平台:助力制药行业设备管理实现数字化转型

随着科技的不断进步和市场竞争的日益激烈&#xff0c;制药行业的设备管理的数字化转型已经成为一个不可逆转的趋势。尤其是在疫情时代&#xff0c;制药企业肩负着重大的社会责任&#xff0c;致使其设备管理的数字化转型之路迫在眉睫。 设备管理的数字化不仅可以提高企业的生产效…