Skip to content

qrmoon/qlass

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

8 Commits
 
 
 
 
 
 
 
 

Repository files navigation

qlass

Simple classes for Lua

Usage

simple class

local class = require "class"

local Person = class "Person"

function Person:init(name, age)
  self.name = name
  self.age = age
end

function Person:introduce()
  print(
    ("Hello, my name is %s and I'm %d years old")
    :format(self.name, self.age)
  )
end

local jason = Person("Jason", 100)
jason:introduce()

inheritance and abstract classes

local class = require "class"

local Animal = class:abstract "Animal"

function Animal:init()
end

local Dog = Animal "Dog" -- Dog is not abstract

function Dog:bark()
  print "bark"
end

metamethods

local class = require "class"

local A = class "A"

function A:__call(n)
  print(self * n)
end

function A:__mul(n)
  return ("A"):rep(n)
end

-- inheritance is still possible
local B = A:extend "B"

Releases

No releases published

Packages

No packages published

Languages