我有这个 Lua 代码来初始化表:
table = {
a = 1;
b = myfunc();
c = function () <some code> end;
}
在这个 table.c 具有类型函数之后,我必须使用 table.c()
在 print 语句中使用 .. 运算符来获取结果。但我想只使用 table.c
来代替。
有没有一种方法可以获取分配给 table.c 的函数的返回值,这样该类型就不是函数,而不必在表外部定义函数?
最佳答案
如果您希望 table.c
包含函数的返回值,那么您应该为其分配函数的返回值。相反,您为其分配了函数本身。
要获取函数的返回值,您必须调用该函数。它实际上与b
没有什么不同。 myfunc
是一个函数; myfunc()
正在调用该函数并存储其返回值。
但是,由于Lua的语法,调用你定义的函数需要将函数构造表达式包装在()
中,然后调用它:
c = (function () <some code> end)();
这当然只会包含构造表时该函数的值。
关于Lua/使用内联函数代码初始化表,但分配值而不是函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45574274/