你好我是Lua的新手我只是想知道是否有办法获得表的关键和值不使用对,ipairs,next或其他迭代器?提前谢谢。!
答案 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) )