diff options
author | chai <chaifix@163.com> | 2021-10-30 11:32:16 +0800 |
---|---|---|
committer | chai <chaifix@163.com> | 2021-10-30 11:32:16 +0800 |
commit | 42ec7286b2d36a9ba22925f816a17cb1cc2aa5ce (patch) | |
tree | 24bc7009457a8d7500f264e89946dc20d069294f /Data/Libraries/Penlight/tests/test-class3.lua | |
parent | 164885fd98d48703bd771f802d79557b7db97431 (diff) |
+ Penlight
Diffstat (limited to 'Data/Libraries/Penlight/tests/test-class3.lua')
-rw-r--r-- | Data/Libraries/Penlight/tests/test-class3.lua | 29 |
1 files changed, 29 insertions, 0 deletions
diff --git a/Data/Libraries/Penlight/tests/test-class3.lua b/Data/Libraries/Penlight/tests/test-class3.lua new file mode 100644 index 0000000..eb3c26f --- /dev/null +++ b/Data/Libraries/Penlight/tests/test-class3.lua @@ -0,0 +1,29 @@ +-- another way to define classes. Works particularly well +-- with Moonscript +local class = require('pl.class') +local A = class{ + _init = function(self, name) + self.name = name + end, + greet = function(self) + return "hello " .. self.name + end, + __tostring = function(self) + return self.name + end +} + +local B = class{ + _base = A, + + greet = function(self) + return "hola " .. self.name + end +} + +local a = A('john') +assert(a:greet()=="hello john") +assert(tostring(a) == "john") +local b = B('juan') +assert(b:greet()=="hola juan") +assert(tostring(b)=="juan") |