在Lua中通过引用删除变量

我在多个表中有几个对象。 多个函数改变并将对象交给其他函数。

假设我的表格是这样的:

objectTable = { obj1, obj2, obj3 }
otherobjTable = { objA, objB, objC, objD }

让我们假设这些是在main.lua中初始化的。

现在,当追踪obj1时,它被一个函数改变,该函数将其改变并将其引用给另一个函数,该函数再次将其改变。 一步可能是:

function()
   if something then func(obj_1)
   elseif something else then func(obj_2)
   elseif something other then func(obj_3)
   //... and so on...
end

function func(received_Object)
  if something then
    table.insert(received_Object, a value)
  end
  callAnotherFunction(received_Object)
end

function callAnotherFunction(received_Object)
  if input == "Delete it" then
    local name = received_Object.name
    received_Object = nil
    return string.format("%s was deleten", name)
  else
    return false
  end
end

现在的问题是,在 received_Object = nil 后,引用指向空,但对象仍然存在。 我怎样才能确信它已被删除?

点赞