当两个同名的类存在于不同的文件中时,调用了错误的构造函数。

我对 Lua 还比较新。我的同事请我在他休假期间处理他的代码。我遇到一个问题,找不到答案(或者我的查询不正确)。

我有两个 Lua 脚本,其中包含模仿我们 C 程序中类型的类。

文件 A 和 B 都包含相同的类 typeA

type1 = {
  new = function(self,num)
    local o = {
      _data_num = {},
      _data = {},
      _size = {},
    }
    o._data_num = num
    for i=1, num do
      o._data[i] = type2:new()
    end
    o._size = o._data[1]:getSize()
    setmetatable(o,self)
    return o
  end,
<some other functions>

同样,这两个文件都包含名为 type2 的类,名称相同但代码不同。在文件 C 中都被标记为必需。

我的脚本在 C 文件中实例化 type1 时崩溃,因为在这个过程中调用了错误的 type2 构造函数(来自 B 而不是 A)。

能否请有经验的人给我提供一些解决方法?

将文件放在不同的文件夹中不起作用。

点赞