所以,我试图写在Lua一个简单的类来表示CSV字段:试图调用方法“打印”(一个零值)时实现OOP在Lua
csv_entry = {}
csv_entry.__index = csv_entry
function csv_entry.create(...)
return arg
end
function csv_entry:tostring()
local str = string.char()
for i,v in ipairs(self) do
if i < #self then
str = str .. v
else
str = str .. v .. ", "
end
end
end
function csv_entry:print()
print(self:tostring())
end
但是,当我尝试使用这个类是这样的:
c = csv_entry.create("Volvo", 10000, "Eric")
c:print() -- line 25
我得到错误信息
lua: csv.lua:25: attempt to call method 'print' (a nil value)
而且我真的不能在这里找出问题。我究竟做错了什么?
您的'create'函数似乎没有做任何事情。它返回'arg',这是nil。还是有更多的事情发生,你没有显示? –