我有以下的Lua代码:
ow = { {move, 4, 5, Down}, { }, ...}
...
if ow[n][1] == "move" then
joypad.set({ ow[n][4] = true })此代码返回一个错误。我想让它工作起来就像我打字一样:
joypad.set({ Down = true })在python中,我会处理这样的情况:
eval('joypad.set({ {0} = true })'.format(ow[n][4]))在Lua有类似的或不同的方法吗?
发布于 2015-01-13 17:41:22
你需要这样写:
joypad.set({ [ow[n][4]] = true })注意"ow[n][4]“旁边的括号。
...and您可以省略括号:
joypad.set{ [ow[n][4]] = true }规则是:如果表键不是词法标识符或字符串,则需要将其放在括号内。
发布于 2015-01-13 23:06:08
要回答你的另一个问题,是的,Lua确实有类似于eval的东西--它叫做loadstring
local setjoy = ("joypad.set { %s = true }"):format(ow[n][4])
loadstring(setjoy)()但是正如Niccolo的回答所显示的,对于你想要的,有一个更直接的方法。
https://stackoverflow.com/questions/27927743
复制相似问题