focus-creative-games / luban

luban是一个强大、易用、优雅、稳定的游戏配置解决方案。luban is a powerful, easy-to-use, elegant and stable game configuration solution.
https://code-philosophy.com/
MIT License
3.4k stars 538 forks source link

lua 多主键表(独立索引)生成代码问题 #132

Closed zengdonghai closed 6 months ago

zengdonghai commented 6 months ago

image image 我想配置一个配置表的Id,Domain两个为独立的键,生成对应独立的map映射表,在lua的表示中,只生成上图这种list的格式,这种多主键表(独立索引)配置方式,在lua貌似不生效

zengdonghai commented 6 months ago

image 图f发错了,对应生成了这种list格式,

zengdonghai commented 6 months ago

image 理想是应该这种map的格式。当然这里还可以优化,value的引用

pirunxi commented 6 months ago

这是已知问题,很多语言并没有内置的多key索引的支持,因此由开发者自己选择合适的实现。写一个make_index2函数就能较好达到效果。

zengdonghai commented 6 months ago

那是需要自己修改代码生成的源码咯?如果是这样那我自己定制一个生成器吧。

pirunxi commented 6 months ago

我觉得没必要改源码。 你实现一个make_index函数将列表转换为你想要的索引方式即可 ,代码类似这样

function make_index(t, key1, key2)

   local nt = {}
   for _, v in ipairs(t) do 
     nt[v[key1]] = v
     nt[v[key2]] = v
  end
    return nt
end
zengdonghai commented 6 months ago

了解,谢谢!