参数的简化
概念:函数若只有一个参数,并且此参数是一个字符串或者table构造式,则(实参)圆括号可以省略。
function TestFunction(str)
print("TestFunction"..str)
end
TestFunction("aaa")
TestFunction "aaa"
--->
TestFunctionaaa
TestFunctionaaa
function arrayShow(arr)
for i,v in pairs(arr) do
print(v)
end
end
arr = {0,1,2,3}
arrayShow(arr)
print("------")
arrayShow{0,1,2,3}
--->
0
1
2
3
------
0
1
2
3
可变参数(变长参数)
function Show(...)
for i,v in pairs({...}) do
print(v)
end
end
Show("a","b","c")
--->
a
b
c
function Show(...)
print("参数个数:"..#arg)
for i,v in pairs(arg) do
print(v)
end
end
Show("a","b","c")
--->
参数个数:3
a
b
c
3
function Show(...)
print("参数个数:"..#arg)
for i,v in ipairs(arg) do
print(v)
end
end
Show("a","b","c")
--->
参数个数:3
a
b
c
function Show(...)
print("参数个数:"..#arg)
for i,v in ipairs(arg) do
print(v)
end
end
Show("a","b",nil,"c")
--->
参数个数:4
a
b
function Show(...)
print("参数个数:"..#arg)
for i,v in pairs(arg) do
print(v)
end
end
Show("a","b",nil,"c")
--->
参数个数:4
a
b
c
4
function Show(...)
print("参数个数:"..select('#',...))
local num
for i = 1,select('#',...) do
num = select(i,...)
print(num)
end
end
Show("a","b",nil,"c")
--->
参数个数:4
a
b
nil
c
select('#',...)表示可变参数的长度。
select(i,...)表示从索引数值到可变参数长度值的所有内容。