函数
这里主要介绍可变参数函数,使用...
表示可变参数函数。
function add( ... )
local s = 0
for i, v in ipairs{...} do -- {...}表示可变参数表,是局部变量
s = s + v
end
return s
end
print(add(1,2,3,4,5,6,7)) -- 累加求和
可以使用select("#", ...)
获取可变参数的变量。代码示例:
function average( ... )
local result = 0
local arg = {...} -- 可变变量构建列表
for i, v in ipairs(arg) do
result = result + v
end
local len = select("#", ...) -- 获取可变变量的个数
print("总共传入 " .. len .. " 个数")
return result / len
end
print(average(1, 2, 3, 4, 5, 6, 7, 8, 9, 10))
也可以选择指定位置的参数
function foo(...)
for i = 1, select("#", ...), 2 do
local arg = select(i, ...)
print("arg: ", arg) -- 选择第i个参数
end
end
foo(1,2,3,4,5,6,7,8,9,10)
输出:
arg: 1
arg: 3
arg: 5
arg: 7
arg: 9
数组
Lua的数组本质上还是一个table
,table
是变长的,而且是基于键值索引的,我们把键值默认为下标即可,使用多重映射来构造高维数组。
array = {}
for i = 1, 3 do
array[i] = {}
for j = 1, 3 do
array[i][j] = i * j
end
end
for i = 1, 3 do
for j = 1, 3 do
print(array[i][j])
end
end