定义格式

function f(x,y)
print(“和为”,x+y)
end

f = function(x,y)
print(“和为”,x+y)
end

传递参数过多的丢弃,不足的设为 nil 补

可变参数

function f(…)
function f(x,y,…)

  1. function f(...)
  2. for k,v in pairs{...} do
  3. print(k.."-> "..v)
  4. end
  5. print(#{...})
  6. end
  7. f(11,22,33,44,55)

image.png

  1. function f(...)
  2. for k,v in pairs(arg) do -- arg 为最后一个元素,取参数长度
  3. print(k.."-> "..v)
  4. end
  5. end
  6. f(11,22,33,44,55)

image.png

函数返回值丢失

多个返回值的函数作为参数时,此函数如果是末尾参数,返回值都会取到,否则只取第一个返回值

function f(x,y,z)
return x,y,z
end

print(“aa”,”bb”,f(11,22,33))
aa bb 11 22 33
print(“aa”,”bb”,f(11,22,33),”cc”)
aa bb 11 cc

a,b,c,d=”aa”,f(11,22,33)
a=”aa”
b=11
c=22
d=33

a,b,c,d=f(11,22,33),”aa”
a=11
b=”aa”
c=nil
d=nil