Lua函数用法研究

2023-12-05 0 799

Lua 基本语法快速入门 中有涉及到函数用法,但只是普通的应用,并没有深成次的研究一下,介于函数用的还是比较多的就专门做个专题研究一下~

一、函数、变量的用法

函数的定义用关键字function 。然后加函数名和变量。注意后面没有do。最后以end结束。

在函数中的变量默认是全局变量,但通常情况下函数中的变量都是在函数中有效的。所以要在声明的时候加上\”local” 标明只在局部有效。
二、返回多个结果值

在Lua中的函数可以返回多个返回值。这与C等语言有很大的不同。因为从根本上讲Lua支持多赋值。

我猜测在内部运行时,多个返回值被封装到了一个table中。然后在赋值时再按顺序取出。
看这个示例:

function max(a)
local mi = 1
local m = a[mi]
for i,val in ipairs(a) do –其中i为顺序位置,val为相应的值
print(\”i= \”..i..\”val=\”..val)
if val >m then
mi = i
m = val
end
end
return m,mi
end

print(max({8,10,23,12,5}))

这个函数的作用是返回一个数列中最大的值和下标。

在实际应用的过程中,在C中调用lua_pcall(L,0,2,0) 即可接受这两个返回值入栈,然后通过 lua_tonumber(L,-1) 和 lua_tonumber(L,-2)即可
三、可变参数

Lua 函数可以接受可变数目的参数,和 C 语言类似在函数参数列表中使用三点(…)表示函数有可变的参数。

Lua 将函数的参数放在一个叫 arg 的表中,除了参数以外,arg表中还有一个域 n 表示参数的个数。

例如:

function myprint(…)
local printResult = \”\” –如果不显式声明,程序会自动检查全局的变量,会找不到出错
print(arg.n)
for i,v in ipairs(arg) do
printResult = printResult..tostring(v)..\’\\t\’
end
printResult=printResult..\’\\n\’
return printResult
end

print(myprint(2,4,6,\’2es\’))

收藏 (0) 打赏

感谢您的支持,我会继续努力的!

打开微信/支付宝扫一扫,即可进行扫码打赏哦,分享从这里开始,精彩与您同在
点赞 (0)

悠久资源 Lua Lua函数用法研究 https://www.u-9.cn/jiaoben/lua/101551.html

常见问题

相关文章

发表评论
暂无评论
官方客服团队

为您解决烦忧 - 24小时在线 专业服务