gpt4 book ai didi

lua - 我们如何改变 print 显示表格的方式

转载 作者:行者123 更新时间:2023-12-01 10:41:47 24 4
gpt4 key购买 nike

假设我有一段代码如下

aTable = {aValue=1}
aTable_mt = {}
print(aTable)

我必须做什么才能让 Lua 打印类似 aTable current aValue = 1 而不是 table: 0x01ab1d2

到目前为止,我已经尝试设置 __tostring 元方法,但它似乎没有被 print 调用。是否有一些我遗漏的元方法,或者答案是否与元方法无关?

最佳答案

__tostring 有效:

aTable = {aValue=1}
local mt = {__tostring = function(t)
local result = ''
for k, v in pairs(t) do
result = result .. tostring(k) .. ' ' .. tostring(v) .. ''
end
return result
end}

setmetatable(aTable, mt)

print(aTable)

这会打印出 aValue 1(带有一个额外的空格,在实际代码中将其删除)。 aTable 部分不可用,因为 aTable 是引用表的变量,而不是表本身的内容。

关于lua - 我们如何改变 print 显示表格的方式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29639479/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com