【问题标题】:How to print the table(pointer) contents in Lua如何在 Lua 中打印表格(指针)内容
【发布时间】:2020-04-21 21:25:59
【问题描述】:

我是 Lua 新手,我需要在 Lua 中序列化和打印一个变量,下面是我的代码。

local function serialise_obj(data)
    if type(data) == "function" or type(data) == "userdata"
            or type(data) == "cdata"
            or type(data) == "table" then
        return tostring(data)
    end

    return data
end

print(serialise_obj(sample_variable))

以下打印指向表的指针 (table: 0x7fefd84e3398)。如何让它打印表格的内容?

提前致谢。

【问题讨论】:

  • 您需要显式打印它,例如for key,value in pairs(data) do print(key, value) ...,另一种方法是重载tostring 的行为来处理表格。

标签: lua lua-table


【解决方案1】:

你需要嘲笑:

local fucntion serialize_obj(data)
  local retval = ""
  if type(data) == "table" then
    for key, val in pairs(data) do
      -- XXX need do somthing with key?
      retval .. serialize_obj(val) -- concatenate to retval
    end
  else
    -- some other logic
  end

  return retval
end

如果data 是带有字符串和/或数字的array,那么您可以使用table.concat

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-05-19
    • 1970-01-01
    • 2020-04-18
    • 1970-01-01
    • 1970-01-01
    • 2020-03-24
    • 2017-01-12
    • 1970-01-01
    相关资源
    最近更新 更多