函数调用需要使用圆括号把参数列表括起来,当函数只有一个参数,且参数是字符串常量或者表构造器时,括号可以不用加
print "Hello world" <--> print("Hello world")
f{x = 10, y = 20} <--> f({x = 10, y = 20})
参数的行为与局部变量的行为完全一致,相当于值为参数值的一个局部变量。
调用函数时使用的参数个数可以与定义函数使用的参数个数不一致,lua会通过抛弃多余参数和将不足的参数设为nil的方式来调整参数的个数
function f (a,b)
print(a,b)
end
f() -->nil nil
f(3,4,5) --> 3 4 (5被抛弃)
lua允许一个函数返回多个结果
s,e = string.find("hello Lua users", "Lua")
print(s,e) --> 7 9
function foo0()
end
function foo1()
return "a"
end
function foo2()
return "a", "b"
end
x,y = foo2() -- x ="a", y = "b"
x = foo2() -- x = "a", "b"被抛弃
x,y,z = foo2() -- x = "a", y = "b", z = nil
x,y = foo2(), 20 -- x = &#