从值中获取表键名

问题描述 投票:0回答:3

我正在尝试从值中获取表键名称。

tostring
仅返回
table: XXXXXXXXX

我尝试了一些功能,但没有任何效果。

config = {
    opt1 = "etc..."
}
players = {}

function openMenu(playerName, configTable)
    players[playerName] = Something to get Table Key...

    -- read the table and create a gui not yet made
end

接下来,如果我这样做:

print(players[playerName])

我想得到这个输出:

"config"
lua key lua-table
3个回答
4
投票

您将需要迭代表的所有

pairs
,如果值相等则返回键。请注意,这只会返回一个绑定,即使多个键可能导致相同的值:

function find(tbl, val)
    for k, v in pairs(tbl) do
        if v == val then return k end
    end
    return nil
end

0
投票
不幸的是,最简单的方法是将键存储为值以便稍后读取。 为了方便任何类型的进一步导出或解析,请在它们前面添加下划线(或您喜欢的任何内容),即

_key

,这样您就可以省略它们。


-1
投票
table.find(t, value [,start_index]) -> [key or nil]
    
© www.soinside.com 2019 - 2024. All rights reserved.