【发布时间】:2019-09-05 21:12:57
【问题描述】:
当我的函数接受许多参数时,有时将单个表作为参数而不是许多局部变量传递是有用的。
function example_1(arg_one, arg_two, arg_three)
end
变成
function example_2(arg_table)
arg_table.arg_one, arg_table.arg_two, arg_table.arg_three
end
问题是,当在代码中的其他地方调用函数时,很难记住arg_table 需要包含什么。许多编辑器有很多代码补全插件可以帮助您记住example_1 函数的参数,但不适用于example_2。
有没有什么办法可以用表参数来编写example_2函数,以一种仍然是表的方式,而且在()内部显示函数的必要参数?
类似这样的东西(不起作用):
function example_2(arg_table = {arg_one, arg_two, arg_three})
end
【问题讨论】:
-
用
assert(arg_table.arg_one ~= nil and arg_table.arg_two ~= nil and arg_table.arg_three ~= nil)开始你的函数 -
在调用函数的时候为什么不直接解包,保留函数参数呢?
标签: lua