[color=blue]函数的作用:
1、完成某项特定任务
2、计算并返回结果[/color]
[color=blue]语法:[/color]
[color=blue]1、多重返回值[/color]
[color=red] A、若函数作为一条单独语句执行,无返回值
B、若函数作为表达式一部分,只保留函数第一个返回值
C、若函数作为表达式一部分并且在表达式最后一个位置,返回所有值[/color]
[color=blue]2、变长参数[/color]
用3个点(...)表示函数接受不同数量的实参
访问变长参数时,仍需用到3个点(...)
[color=blue]3、具名实参[/color]
将所有实参组织到一个table中
1、完成某项特定任务
2、计算并返回结果[/color]
[color=blue]语法:[/color]
function func_name(args)
statements
end
[color=blue]1、多重返回值[/color]
[color=red] A、若函数作为一条单独语句执行,无返回值
B、若函数作为表达式一部分,只保留函数第一个返回值
C、若函数作为表达式一部分并且在表达式最后一个位置,返回所有值[/color]
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
[color=blue]2、变长参数[/color]
用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
[color=blue]3、具名实参[/color]
将所有实参组织到一个table中
rename({old="temp.lua", new="temp1.lua"})
也可以写成
rename{old="temp.lua", new="temp1.lua"}
不过我还是喜欢第一种风格