导航表而不使用Lua中的对

时间:2017-02-09 21:16:26

标签: lua lua-table

你好我是Lua的新手我只是想知道是否有办法获得表的关键和值不使用对,ipairs,next或其他迭代器?提前谢谢。!

2 个答案:

答案 0 :(得分:2)

我不相信这是可能的,因为你用一种暗示钥匙未知的方式表达了你的问题。检查特定值及其对应密钥的唯一方法是遍历整个表。

但是,也许我误解了你想从密钥中获取某个值而不遍历整个表格。

假设您有一个名为莫尔斯的表格如下:

morse = { a = ".-"; b = "-..."; } -- And so on

如果您想将单个字符转换为莫尔斯,您可以执行以下操作:

morse["a"] --Which will return the string ".-"

您可以执行相反的操作,并定义一个包含所有莫尔斯值及其相应字母的表格,如下所示。注意使用方括号来“转义”字符。

morse = { [".-"] = "a"; ["-..."] = "b" }
morse[".-"] -- This will return "a"

答案 1 :(得分:0)

基于your comment,我认为您正在寻找使用映射表的字符串替换。我认为你可以使用string.gsub here(如果你的老师仍然坚持认为.gsub是一个迭代器;你可以礼貌地问他们你不知道他们声称的方法,并且很乐意真正了解它):

local str = "sos sos sos"
local morse = {s = "...", o = "---"}

print( str:gsub("%a", morse) )
相关问题