所以,我試圖寫在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。還是有更多的事情發生,你沒有顯示? –