如何创建具有唯一 ID 的 table 条目并使用该 ID 访问它们..?
How to create table entries with unique id and access them using that id..?
您好,我需要在 lua 中创建一个 table,每个条目(记录)都可以由唯一 ID
表示
table[p1d2].seq={0,1,2,3} table[p1d2].days={'sun','mon','wed'}
table[p2d2].seq={0,1,2,3,4} table[p2d2].days={'fri','sat','tue'}
print(table.concat(table[p1d2].seq))==> 0123
像这样我想插入和访问请帮我解开这个谜语
我不确定是否理解您的要求,因为 Lua 中的表本身处理字符串索引,例如以下代码段:
tab = {};
tab['one']=1;
print(tab['one']);
打印 1
...如果这不是您要问的,能否请您尝试更准确地解释您想要的行为?
如果这是你的问题,像这样的代码应该可以工作(我定义了一个 Thing
class 因为我看到你似乎使用 class 和 seq
和 days
字段,但我猜你的代码中已经有类似的东西,所以我只保留它以供参考)。
-- class definition
Thing = {seq = {}, days ={}}
function Thing:new (o)
o = o or {}
setmetatable(o, self)
self.__index = self
return o
end
-- definition of the table and IDs
tab={}
p1d2='p1d2'
p2d2='p2d2'
-- this corresponds to the code you gave in your question
tab[p1d2]=Thing:new()
tab[p2d2]=Thing:new()
tab[p1d2].seq={0,1,2,3}
tab[p1d2].days={'sun','mon','wed'}
tab[p2d2].seq={0,1,2,3,4}
tab[p2d2].days={'fri','sat','tue'}
print(table.concat(tab[p1d2].seq))
-- prints '0123'
如果您想创建具有唯一 ID 的 table 条目,为什么不简单地使用数字 table 键?
local list = {}
table.insert(list, {seq={0,1,2,3}, days={"sun", "mon", "wed"}})
table.insert(list, {seq={0,1,2,3,4}, days= {'fri','sat','tue'}})
这样一来,每个添加的条目都会自动拥有一个唯一的 ID,而无需生成一个。稍后您可以使用该索引来寻址该条目。
如果这不是您的要求,您应该提供更多详细信息和示例
您好,我需要在 lua 中创建一个 table,每个条目(记录)都可以由唯一 ID
表示table[p1d2].seq={0,1,2,3} table[p1d2].days={'sun','mon','wed'}
table[p2d2].seq={0,1,2,3,4} table[p2d2].days={'fri','sat','tue'}
print(table.concat(table[p1d2].seq))==> 0123
像这样我想插入和访问请帮我解开这个谜语
我不确定是否理解您的要求,因为 Lua 中的表本身处理字符串索引,例如以下代码段:
tab = {};
tab['one']=1;
print(tab['one']);
打印 1
...如果这不是您要问的,能否请您尝试更准确地解释您想要的行为?
如果这是你的问题,像这样的代码应该可以工作(我定义了一个 Thing
class 因为我看到你似乎使用 class 和 seq
和 days
字段,但我猜你的代码中已经有类似的东西,所以我只保留它以供参考)。
-- class definition
Thing = {seq = {}, days ={}}
function Thing:new (o)
o = o or {}
setmetatable(o, self)
self.__index = self
return o
end
-- definition of the table and IDs
tab={}
p1d2='p1d2'
p2d2='p2d2'
-- this corresponds to the code you gave in your question
tab[p1d2]=Thing:new()
tab[p2d2]=Thing:new()
tab[p1d2].seq={0,1,2,3}
tab[p1d2].days={'sun','mon','wed'}
tab[p2d2].seq={0,1,2,3,4}
tab[p2d2].days={'fri','sat','tue'}
print(table.concat(tab[p1d2].seq))
-- prints '0123'
如果您想创建具有唯一 ID 的 table 条目,为什么不简单地使用数字 table 键?
local list = {}
table.insert(list, {seq={0,1,2,3}, days={"sun", "mon", "wed"}})
table.insert(list, {seq={0,1,2,3,4}, days= {'fri','sat','tue'}})
这样一来,每个添加的条目都会自动拥有一个唯一的 ID,而无需生成一个。稍后您可以使用该索引来寻址该条目。
如果这不是您的要求,您应该提供更多详细信息和示例