Lua / 使用内联函数代码初始化 table 但赋值不是函数

Lua / Initialize table with inline function code but assign value not function

我有这个 Lua 代码来初始化 table:

table = {
  a = 1;
  b = myfunc();
  c = function () <some code> end;
}

此后table.c有类型功能,我必须使用table.c() 在带有 .. 运算符的打印语句中获取结果。但我想改用 table.c

有没有一种方法可以获取分配给 table.c 的函数的 return 值,这样该类型就不是函数,而无需在 table 之外定义函数?

如果您希望 table.c 包含函数的 return 值,那么您应该为它分配 return 值 功能。您反而为它分配了函数本身。

要获得函数的 return 值,您必须调用该函数。真的和b没什么区别。 myfunc 是一个函数; myfunc() 正在调用该函数并存储其 return 值。

但是,由于Lua的语法,调用您正在定义的函数需要您需要将函数构造表达式包装在()中,然后调用它:

c = (function () <some code> end)();

这当然只会包含构造 table 时该函数的值。