gpt4 book ai didi

lua - 在lua中比较表,其中键是表

转载 作者:行者123 更新时间:2023-12-04 16:18:59 24 4
gpt4 key购买 nike

我需要比较两个表是否相等 - 就像在相同的内容中一样。两个表都有表作为键。

例如:

t1 = {{1,1},{2,2}}
t2 = {{1,1},{2,2}}
t3 = {{1,1},{2,2},{3,3}}

t1 和 t2 应该相等,但 t1 和 t3 不应该相等。

最佳答案

我的解决方案不是绝对的(不喜欢键),但应该适用于您提出问题的嵌套表。我的概念是递归和简单的:

从每个输入中获取一个条目,确保它们:类型匹配,都是表格,并且两个表格的长度相同。如果这三件事都成立,您现在可以 1:1 递归比较两个表。如果类型不匹配或表的长度不同,则自动失败。

function compare (one, two)

if type(one) == type(two) then
if type(one) == "table" then
if #one == #two then

-- If both types are the same, both are tables and
-- the tables are the same size, recurse through each
-- table entry.
for loop=1, #one do
if compare (one[loop], two[loop]) == false then
return false
end
end

-- All table contents match
return true
end
else
-- Values are not tables but matching types. Compare
-- them and return if they match
return one == two
end
end
return false
end

do
t1 = {{1,1},{2,2}}
t2 = {{1,1},{2,2}}
t3 = {{1,1},{2,2},{3,3}}

print (string.format(
"t1 == t2 : %s",
tostring(compare (t1,t2))))

print (string.format(
"t1 == t3 : %s",
tostring(compare (t1,t3))))
end

输出是:
t1 == t2 : true
t1 == t3 : false

关于lua - 在lua中比较表,其中键是表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46750313/

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