当一个lua函数的参数个数非常多时, 我们在调用一个函数时可能会忘记参数的顺序. 例如
function divide(a,b)
return a/b
end
调用这个函数时, 如果把输入的参数搞反了, 结果是完全不一样的.
> print(divide(1,2))
0.5
> print(divide(2,1))
2
参数越多, 越容易搞错顺序.
使用table作为函数参数, 有一个好处是, 不需要记忆函数参数的顺序, 只要TABLE的元素内容一样就可以了, 例如
> function divide1(args)
>> return args.a/args.b
>> end
> print(divide1 {a=1, b=2})
0.5
> print(divide1({a=1, b=2}))
0.5
> print(divide1({b=2, a=1}))
0.5
输入的顺序无所谓, 只要元素对应的值一样就可以了.