我想编写最简单的函数,让我在无名表中返回所需的值,并且,ideally,它应该是这样的:
function RL_MyTool:Version(n)
return {"0.4.0", "20221003-0230", "13.5.5"}[n]
end
但是,当然,这在 Lua 中是不允许的......
因此,我立即想到了另外两种可能性:
1:
function RL_MyTool:Version(n)
local t = {"20221003-0230", "13.5.5"}
return t[n] or "0.4.0"
end
2:
function RL_MyTool:Version(n)
local n, t = n or 1, {"0.4.0", "20221003-0230", "13.5.5"}
return t[n]
end
它们彼此略有不同,但执行相同的操作,如果没有给出参数,则具有返回默认值的优点,这很好。但是...您认为我仍然有可能像上面那样以最简单的方式编写它吗?基本上,我想要的甚至不必在函数中使用单个变量或表声明但仍然让我在调用时返回指定的表条目。
嗯,仅此而已。当然,如果最终不可能(我担心),那也不会是世界末日????,但我想确保我没有错过任何 Luatrick或者让我做得更像我最初想象的那样......谢谢!
附:哦,我不明白如何实现,但是当然,如果根本不需要使用表格就可以实现它,那将同样有效甚至更好。
EDIT:顺便说一句,为了记录并基于@Piglet(太棒了!)的答案,我必须以这种方式进一步减少它:
function RL_MyTool:Version(n)
return ({"0.4.0", "20221003-0230", "13.5.5"})[n or 1]
end
通过避免重复值,同时提高代码可用性/维护性......有点双赢????