Lua(标准解释器)出现错误,我找不到问题的根源。我正在尝试创建类似于 Java、C# 等语言的枚举的东西。我必须定义枚举标准的当前代码是这样的:
enum = {
new = function (self, ...)
local o = {};
setmetatable(o, self);
self.__index = self;
for k,v in args do -- THIS LINE IS GIVING THE ERROR
self[v] = 2^k;
end
table.sort(self, function(a,b) if a>b then return true; else return false; end end)
return o;
end,
sum = function (self, ...)
local s
for k,v in args do
s = s+self[v];
end
end,
expand = function (self, number)
indices = {};
for k,v in ipairs(self) do
if v < number then
table.append(k);
number = number-v;
end
end
return unpack(indices);
end
}
错误出现在new
函数中,在循环语句中(而不是其中的语句)。这可能是什么原因?我不是在“调用”这些值,只是引用它们。我也尝试用 替换2^k
,math.pow(2,k)
所以这也不是数学。我运行以下代码来测试脚本:
myEnum = enum:new("a","b","c");
我应该注意,错误只是说明标题上的内容,没有变量名或任何内容。