Lua - 按值复制表



复制表意味着我们想要将一个表中存在的所有值或键值对复制到另一个表中。在 Lua 中,没有标准库函数可以用来创建这样的表,但我们可以创建自己的函数来实现。

让我们创建一个 Lua 函数,该函数将一个表作为参数,并创建一个新表,该新表将是传递给函数的参数表的精确副本。

示例

请参考以下示例:

main.lua

a = {}
a["name"] = "mukul"
a["age"] = 23
a["isWorking"] = true

function table.table_copy(t)
   local t2 = {}
   for k,v in pairs(t) 
   do
      t2[k] = v
   end
   return t2
end

copy = table.table_copy(a)
for _,v in pairs(a) 
do 
   print(v) 
end
for _,v in pairs(copy) 
do 
   print(v) 
end

在上面的例子中,我们有一个名为 a 的表,稍后我们将它作为参数传递给名为 table.table_copy() 的函数,该函数返回我们传递的相同表的副本,最后我打印了这些表中的值以检查复制的表是否准确。

输出

mukul
true
23
mukul
true
23
广告