Lua函数可变参数

Lua函数可变参数教程

Lua函数 的参数是支持可变参数的,即函数参数的个数是任意的,最典型的可变参数的就是系统内置的 print 函数。

在 Lua 中,函数的可变参数使用 ... 来表示。我们要获取用户传入的所有的参数,可以使用 arg 变量。

Lua函数可变参数详解

语法

function function_name(...) -- arg end

说明

在 Lua 中,函数可变参数使用 ... 表示,要获取用户传入的所有参数,使用 arg 变量。但是在 lua 5.1 以后,不再使用这种处理方式,它不会再为每一个可变长参数生成一个 table;如果我们还想要使用 arg,我们最好使用如下写法:

function func(...) local arg={...} end

arg

这些点(…)表明这个函数有一个可变长参数。它所有的参数存储在一个单独的 table,在函数内,可以通过 arg 访问。

arg 有一个额外的字段 :n,表示参数的个数:

function myprint (...) for i,v in pairs(arg) do printResult = printResult .. tostring(v) .. "\t" end print(arg.n) --4 printResult = printResult .. "\n" end myprint(1,0,"a",true) print(printResult) --1 0 a true 4,最后一个为n

案例

函数可变参数

用函数可变参数,实现求任意变量的和

#!/usr/bin/lua print("haicoder(www.haicoder.net)\n") function sum(...) local result = 0 local arg = {...} for i, v in ipairs(arg) do result = result + v end return result end result = sum(1, 3, 5, 7, 9) print(string.format("result = %d", result))

程序运行后,控制台输出如下:

06_Lua函数可变参数.png

我们定义了一个函数 sum,该函数的参数是一个可变参数。接着,我们使用该可变参数,实现了求出我们传入的所有数的和。

同时,我们可以看到,要获取所有的传入的参数,我们可以使用 arg 变量。

Lua函数可变参数总结

Lua 中函数的参数是支持可变参数的,即函数参数的个数是任意的,最典型的可变参数的就是系统内置的 print 函数。

在 Lua 中,函数的可变参数使用 ... 来表示。我们要获取用户传入的所有的参数,可以使用 arg 变量。