I have a problem with classes. I got below error: Attempt to index local \'self\' (a nil value) When I call the getter method of below class. Item.lua file:
In general, you should call member functions by :
.
In Lua, colon (:
) represents a call of a function, supplying self
as the first parameter.
Thus
A:foo()
Is roughly equal to
A.foo(A)
If you don't specify A as in A.foo()
, the body of the function will try to reference self
parameter, which hasn't been filled neither explicitly nor implicitly.
Note that if you call it from inside of the member function, self
will be already available:
-- inside foo()
-- these two are analogous
self:bar()
self.bar(self)
All of this information you'll find in any good Lua book/tutorial.