在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
开源软件名称(OpenSource Name):rxi/classic开源软件地址(OpenSource Url):https://github.com/rxi/classic开源编程语言(OpenSource Language):Lua 100.0%开源软件介绍(OpenSource Introduction):ClassicA tiny class module for Lua. Attempts to stay simple and provide decent performance by avoiding unnecessary over-abstraction. UsageThe module should be dropped in to an existing project and required by it: Object = require "classic" The module returns the object base class which can be extended to create any additional classes. Creating a new classPoint = Object:extend()
function Point:new(x, y)
self.x = x or 0
self.y = y or 0
end Creating a new objectlocal p = Point(10, 20) Extending an existing classRect = Point:extend()
function Rect:new(x, y, width, height)
Rect.super.new(self, x, y)
self.width = width or 0
self.height = height or 0
end Checking an object's typelocal p = Point(10, 20)
print(p:is(Object)) -- true
print(p:is(Point)) -- true
print(p:is(Rect)) -- false Using mixinsPairPrinter = Object:extend()
function PairPrinter:printPairs()
for k, v in pairs(self) do
print(k, v)
end
end
Point = Object:extend()
Point:implement(PairPrinter)
function Point:new(x, y)
self.x = x or 0
self.y = y or 0
end
local p = Point()
p:printPairs() Using static variablesPoint = Object:extend()
Point.scale = 2
function Point:new(x, y)
self.x = x or 0
self.y = y or 0
end
function Point:getScaled()
return self.x * Point.scale, self.y * Point.scale
end Creating a metamethodfunction Point:__tostring()
return self.x .. ", " .. self.y
end LicenseThis module is free software; you can redistribute it and/or modify it under the terms of the MIT license. See LICENSE for details. |
2023-10-27
2022-08-15
2022-08-17
2022-09-23
2022-08-13
请发表评论