gpt4 book ai didi

lua - 使用字符串键索引时 lua 表大小错误

转载 作者:行者123 更新时间:2023-12-04 21:48:29 24 4
gpt4 key购买 nike

通常为了获取表的大小,标准表库函数 # 运算符起作用。

但是,当我创建一个具有字符串键索引的表时,它不起作用。

local function addWriterIdListToTable()

local returnTable = {}
local requestString = "1234:16 5678:8 9012:1"
local idList = requestString:split(" ")
for i,v in ipairs(idList) do
local oneId = v:split(":")
returnTable[oneId[1]] = oneId[2]
end

for k,v in pairs(returnTable) do
print (k .. " " .. v)
end
print("size of table: " .. #returnTable)

return returnTable

end

我想将一个字符串转换成表格。“split”函数解析一个字符串,以参数为分隔符将其拆分,并以表格形式返回。

上面函数的执行结果如下。

1234 16
9012 1
5678 8
size of table: 0

它完全按照我的预期显示了表格的内容,但它的计数不是。

有人帮我吗?

提前致谢。

最佳答案

# 运算符告诉您表中的最高数字索引。如果数字索引中有任何间隙,它可能会返回间隙下方的最高值。基本上,# 运算符只有在您将表格视为密集数组时才能正常工作。

如果您真的想知道一个表中有多少条目,您需要使用 pairs() 函数对其进行迭代并计算您得到的条目数。

function countTableSize(table)
local n = 0
for k, v in pairs(table) do
n = n + 1
end
return n
end

虽然我确实想知道为什么您甚至需要知道表中有多少条目。通常,您只关心表是否为空,您可以通过查看是否 next(table) == nil 来检查这一点。

关于lua - 使用字符串键索引时 lua 表大小错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10695035/

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