From aa8dc46afa1f2b959725d372e0c470174bd47a34 Mon Sep 17 00:00:00 2001 From: AR2000 Date: Sat, 2 Dec 2023 14:26:46 +0100 Subject: [PATCH] [libClass2] Readme --- README.md | 2 +- libClass2/README.md | 33 +++++++++++++++++++++++++++++++++ 2 files changed, 34 insertions(+), 1 deletion(-) create mode 100644 libClass2/README.md diff --git a/README.md b/README.md index 34bab7b..10aff76 100644 --- a/README.md +++ b/README.md @@ -107,7 +107,7 @@ Let you mount a "decrypted" version of the disk for easy file manipulation. --- ## Additional library -### [libClass](libClass/) +### [libClass2](libClass2/) add object oriented programming to lua. ### [libGUI](libGUI/) diff --git a/libClass2/README.md b/libClass2/README.md new file mode 100644 index 0000000..f555b6d --- /dev/null +++ b/libClass2/README.md @@ -0,0 +1,33 @@ +# libClass2 +```lua +local class = require("libClass2") + +---@class A:Object +local A = class() + + +--constructor +function A:new() + --call the parent's constructor + local o = self.parent() + -- this line make `o` a objet of class `A` + o = setmetatable(o, {__index = self}) + ---@cast o A + o.member = 1 + return o +end + +function A:method() + self.member = self.member +1 + return self.member +end + +---@class B:A +local B = class(A) + +local a = A() +print(a:method()) + +local b = B +print(b:method()) +``` \ No newline at end of file