diff options
-rw-r--r-- | example.lua | 32 | ||||
-rw-r--r-- | readme.md | 1 |
2 files changed, 0 insertions, 33 deletions
diff --git a/example.lua b/example.lua deleted file mode 100644 index d0f6a72..0000000 --- a/example.lua +++ /dev/null @@ -1,32 +0,0 @@ -local Object = require "Object" - -local Point = Object:extends() -- creating new class by extending basic class -function Point:new (x, y) -- defining function called by constructor for newly created class - self.x = x -- instance created by constructor is `self` - self.y = y -end -- no returns needed - -Point.NUMBER = 10 -- setting some global values for class - -function Point:__tostring () -- metamethod used with `tostring()` - return "Point<" .. self.x .. ", " .. self.y .. ">" -end - -local a = Point(3, 2) -- create new instance by calling class -print(tostring(a)) - -assert(a:is(Point)) -- you can also check if object is instance of class -assert(a:is(Object)) -- use `is()` method for it - -local Foo = Point:extends() -- you can extend whatever class you want -function Foo:new (str, x, y) - Foo.__super.new(self, x, y) -- call super constructor first - self.str = str -- do whatever else is left to be done -end - -function Foo:__tostring () -- metamethods are not inherited - return "Foo(" .. self.str .. ")<" .. self.x .. ", " .. self.y .. ">" -end - -local b = Foo("lorem", 7, -1) -print(tostring(b)) @@ -2,7 +2,6 @@ ## Description **Object.lua** is a really small lua module used for class creation that supports single-parent inheritance (Java-like) and metamethods. Initially it was created with three different approaches for fun but it eventually matured enough to be used. It was tested and works just fine on Lua 5.1 and up. ## Example -*This is content of `example.lua`.* ```lua local Object = require "Object" |