1、完成某项特定任务
2、计算并返回结果
语法:
function func_name(args) statements end
1、多重返回值
A、若函数作为一条单独语句执行,无返回值
B、若函数作为表达式一部分,只保留函数第一个返回值
C、若函数作为表达式一部分并且在表达式最后一个位置,返回所有值
function t_none() end --->无返回值 function t_one() return "a" end --->返回一个值"a" function t_many() return "a","b" end --->返回两个值"a","b" x = t_many() --->x="a","b"被抛弃 x,y = t_many() --->x=="a",y="b" x,y,z = t_many() --->x="a",y="b",z=nil x,y = t_many(),20,30 --->x="a",y=20,30被抛弃 将函数放在一对圆括号内,强制函数返回一个值 print((t_many())) --->a
2、变长参数
用3个点(...)表示函数接受不同数量的实参
function sum(...) local s = 0 for i,v in pairs({...}) do s = s + v end return s end
访问变长参数时,仍需用到3个点(...)
function sum(...) local a,b,c = ... end
3、具名实参
将所有实参组织到一个table中
rename({old="temp.lua", new="temp1.lua"}) 也可以写成 rename{old="temp.lua", new="temp1.lua"} 不过我还是喜欢第一种风格