【问题标题】:How to add table to table?如何将表格添加到表格?
【发布时间】:2017-07-19 07:30:33
【问题描述】:

我想将表 'mm' 添加到表 'fmenu.pages' 但它根本不起作用。错误:尝试索引一个零值(字段'main2')。它关于最后一行。代码:

local fmenu = {
    selected_button = 0,
    menu = {
        font = 1,
    },
    pages = {
        ["main"] = {
            name = "name",
            id = 1,
            btns = {
                {name = "name I",  id = 1}
            }
        }
    }
}

local mm = {
    ["main2"] = {
        name = "name2",
        id = 2,
        btns = {
            {name = "name I",  id = 1},
            {name = "name II",  id = 2}
        }
    }
}

table.insert(fmenu.pages, mm)
print(fmenu.pages["main2"].name)

【问题讨论】:

  • 试试fmenu.pages.main2 = mm.main2(如果mm内还有其他页面:main3、main4、...,那么你必须编写for循环来逐一添加)跨度>
  • 你又节省了我 3-4 个小时哈哈谢谢你:)
  • table.insert(fmenu.pages, mm) 等价于fmenu.pages[1]=mm,这不是你想要的。
  • 还有其他更好的方法吗?

标签: lua


【解决方案1】:

使用lua-stdlib 中的table.merge 怎么样?

local table = require"std.table"

local fmenu = {
    selected_button = 0,
    menu = {
        font = 1,
    },
    pages = {
        ["main"] = {
            name = "name",
            id = 1,
            btns = {
                {name = "name I",  id = 1}
            }
        }
    }
}

local mm = {
    ["main2"] = {
        name = "name2",
        id = 2,
        btns = {
            {name = "name I",  id = 1},
            {name = "name II",  id = 2}
        }
    }
}

table.merge(fmenu.pages, mm)
print(fmenu.pages["main2"].name)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-09-27
    • 1970-01-01
    • 2017-09-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多