当我有接受很多参数的函数时,有时将单个表作为参数而不是许多局部变量传递会很有用。
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
最佳答案
像往常一样,用单独的参数编写正式参数列表和文档。然后记录如果第一个(也是唯一的)实际参数是一个表,有效参数将使用形式参数名称作为字符串键从表中获取。
关于Lua 函数 : how to use tables as function arguments and self-document the code,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57792137/