如何在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)。我该如何打印表的内容呢?

非常感谢。

点赞
用户9285107
用户9285107

你需要循环:

本地函数serialize_obj(data)
  local ret值 =“”
  如果type(data)==“tablethen
    对于key,val do中的对(data)进行迭代
      - XXX需要对键做某些事情吗?
      ret值..serialize_obj(val) - 连接到ret值
    结束
  别的
    - 其他逻辑
  结束

  返回ret值
结束

如果data是由字符串和/或数字组成的array,则可以使用table.concat

2020-01-03 14:49:47