无涯教程-Lua - 函数声明

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

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

定义函数

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

optional_function_scope function function_name( argument1, argument2, argument3........, argumentn)function_bodyreturn 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) thenresult = num1;elseresult = num2;endreturn result; 
end

调用函数

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

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

function max(num1, num2)if (num1 > num2) thenresult = num1;elseresult = num2;endreturn 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,"##")
endfunction add(num1,num2,functionPrint)result = num1 + num2functionPrint(result)
endmyprint(10)
add(2,5,myprint)

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

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

函数变量

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

function average(...)result = 0local arg = {...}for i,v in ipairs(arg) doresult = result + vendreturn result/#arg
endprint("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.hqwc.cn/news/53611.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

React 论文《ReAct: Synergizing Reasoning and Acting in Language Models》阅读笔记

文章目录 1. 简介论文摘要翻译动机和主要贡献 2. REACT : SYNERGIZING *RE*ASONING *ACT*ING3. KNOWLEDGE-INTENSIVE REASONING TASKS3.1 设置3.2 方法3.3 结果和观察 4. 决策任务5. 参考资料 1. 简介 论文摘要翻译 虽然大型语言模型(LLM)在自然语言理…

原型链污染例题复现

一、什么是原型链 下面我们通过这个小例子来看看。 可以看到b在实例化为test对象以后,就可以输出test类中的属性a了。这是因为在于js中的一个重要的概念:继承。而继承的整个过程就称为该类的原型链。 在javascript中,每个对象的都有一个指向他的原型(p…

棱镜七彩正式加入龙蜥社区安全联盟(OASA)

近日,龙蜥社区安全联盟(OASA)正式成立,棱镜七彩成为该联盟成员单位。 龙蜥社区安全联盟是促进产业合作的非营利组织,致力于打造中立开放、聚焦操作系统信息安全的交流平台,推进龙蜥社区乃至整个产业安全生态…

antd 库的 Table 组件中删除一个或多个选中的列表

先解释一下原代码每个方法的含义 const TablePage: React.FC () > {/* selectedRowKeys 指定选中项的 key 数组,需要和 onChange 进行配合在此处,通过 rowSelection.selectedRowKeys 来控制选中项。*/const [selectedRowKeys, setSelectedRowKeys] …

msvcp120.dll丢失的解决方法(亲测可修复方的法)

在运行某些软件的时候,计算机提示msvcp120.dll丢失,无法打开运行软件。在第一次遇到这个问题的时候,相信很多人都不知道是怎么回事。下面小编把msvcp120.dll是什么以及如何解决这个问题的详细方法给大家科普一下。 问题描述: 在使…

公文写作技巧:“三面镜子”写作提纲60例

写作技巧:“三面镜子”写作提纲60例 1. 用好“三面镜子” 推深做实警示教育 勤用“反光镜”以案为鉴。 善用“显微镜”以案明纪。 巧用“聚光镜”以案促改。 2. 年轻干部要用好“三面镜子” 用好“反光镜”,照亮基层中的“暗点” 用好“显微镜”&am…

4.PyCharm汉化

完成上一篇的安装之后,全英文的界面可能对一些英文不太好的小伙伴不太友好,本篇文章介绍Phcharm汉化教程: 点击菜单种的File-Setting 选择Marketplace在搜索框输入Chinese 点击安装 安装成功后会提示重新启动,点击Restart 安…

使用TensorBoard进行可视化

1. TensorBoard介绍 TensorBoard是TensorFlow推出的可视化工具,可以可视化模型结构、跟踪并以表格形式显示模型指标。 TensorBoard的使用包括两个步骤: 在代码中设置TensorBoard,在训练的过程中将会根据设置产生日志文件在浏览器中可视化该…

如何在轻量级RTSP服务支持H.264扩展SEI发送接收自定义数据?

为什么开发轻量级RTSP服务? 开发轻量级RTSP服务的目的是为了解决在某些场景下用户或开发者需要单独部署RTSP或RTMP服务的问题。这种服务的优势主要有以下几点: 便利性:通过轻量级RTSP服务,用户无需配置单独的服务器,…

【Linux后端服务器开发】Reactor模式实现网络计算器

目录 一、Reactor模式概述 二、日志模块:Log.hpp 三、TCP连接模块:Sock.hpp 四、非阻塞通信模块:Util.hpp 五、多路复用I/O模块:Epoller.hpp 六、协议定制模块:Protocol.hpp 七、服务器模块:Server.…

05 - ArrayList还是LinkedList?使用不当性能差千倍

集合作为一种存储数据的容器,是我们日常开发中使用最频繁的对象类型之一。JDK 为开发者提供了一系列的集合类型,这些集合类型使用不同的数据结构来实现。因此,不同的集合类型,使用场景也不同。 很多同学在面试的时候,…

Leetcode-每日一题【剑指 Offer 05. 替换空格】

题目 请实现一个函数&#xff0c;把字符串 s 中的每个空格替换成"%20"。 示例 1&#xff1a; 输入&#xff1a;s "We are happy."输出&#xff1a;"We%20are%20happy." 限制&#xff1a; 0 < s 的长度 < 10000 解题思路 前置知识 Str…