Lua tables - 你可以将它用作带键的数组吗?

Lua tables - Can you use it as an array with key?

    players={
             {uuid = "abc",name = "TheEisbaer"},
             {uuid= "def",name ="Eisbaer68"},
             {uuid= "ghj",name = "kevin"}
            }
    list={name = "TheEisbaer", name = "Eisbaer68"}

使用 print(list.name) 它打印 "Eisbaer68"。 我如何让它打印 "TheEisbaer"?

-

你能做类似 print(players[3].uuid) 的事情吗?或者你会怎么做?

如果我理解(并且相信我,这并不容易)您想要做什么:

首先:

list={name = "TheEisbaer", name = "Eisbaer68"}

相当于

list={name = "Eisbaer68"}

或者,更清楚地说,也许:

list={}
list.name = "TheEisbaer"
list.name = "Eisbaer68"

当您在同一个 table 中使用同一个密钥两次时,最新的密钥值会覆盖之前的密钥值。

您似乎想在数据库中实现相当于 'join' 的功能。如果你想显示(或者,一般来说,过滤)那些 'name' 也出现在列表中的玩家的 'records',可能是这样的:

players =
  {
   {uuid= 'abc', name = 'TheEisbaer'    },
   {uuid= 'def', name = 'Eisbaer68'     },
   {uuid= 'ghj', name = 'kevin'         },
  }

list = { TheEisbaer=true, Eisbaer68=true }

for _,t in ipairs(players) do
  if list[t.name] then         --if key exists in list table ...
    print(t.name .. ' => ' .. t.uuid)
  end
end

这里的列表有一些键,可以更容易地查找。你也可以用不同的方式来做,但它可能需要一个嵌套的 FOR 循环来遍历两个 tables.

之间所有可能的组合。