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 时该函数的值。
我有这个 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 时该函数的值。