当一个函数只有一个参数,而且这个参数的类型是字符串或者table,那么函数的()可以省略
函数的参数是一个local变量
lua函数可以返回多个返回值
s,e = string.find('Hello lua users','lua')
print(s,e) —> 7 9
()可以强制函数只返回1个返回值
print((foo0())
table.unpack,参数接收一个数组,然后以下标索引1开始 返回数组里的所有数据
print(table.unpack{10,20,30})
a,b = table.unpack{10,20,30}
可以指定返回的下标索引
lua可变参数函数的写法实例
function add( ... )
local s = 0
for i,v in ipairs{...} do
s = s + v
end
return s
end
print(add(3,4,10,25,12))
{…} 可以把 可变参数 ...变成一个table
table.pack函数也可以把…变成一个table,并且有个n的字段标记个数
function nonils( ... )
local arg = table.pack(...)
for i=1,arg.n do
if arg[i] == nil then return false end
end
return true
end
print(nonils(2,3,nil))
print(nonils(2,3))
print(nonils())
print(nonils(nil))
当一个函数有过多的可选参数时候,可以用如下定义方式
function Window(options)
end
w = Window{x=0,y=0,width=300,height=200,title = ‘Lua’,background = ‘blue’,border = true}