lua 函数调用中的参数名称

我正在寻找一种更愉快的方法来添加函数调用时的参数名称。

比以下两种方式更好:

local ret =  foo( --[[argNam1 =]] true)
local ret =  foo( true ) -- 第一个参数是argName1

我尝试了

local ret =  foo( argNam1 = true)

但我遇到了错误

')' 附近需要 ')' 
点赞
用户4383587
用户4383587

你可以使用命名参数,如果这是你想要的。Lua的表格很适合模拟这种行为。因此,你不需要通过逗号分隔的方式传递所有参数,只需传递一个具有命名键的单个表格对象。

如果你的函数是这样的:

local foo(parameters)
    print(parameters.argNam1)
end

那么你可以这样调用它:local ret = foo{argNam1 = true} 或者这样调用它:

local arguments = {
    argNam1 = true,
    argNam2 = "foobar"
}
local ret = foo(arguments)
2019-12-03 13:52:20