From 42ec7286b2d36a9ba22925f816a17cb1cc2aa5ce Mon Sep 17 00:00:00 2001 From: chai Date: Sat, 30 Oct 2021 11:32:16 +0800 Subject: + Penlight --- .../Penlight/docs/libraries/pl.class.html | 332 +++++++++++++++++++++ 1 file changed, 332 insertions(+) create mode 100644 Data/Libraries/Penlight/docs/libraries/pl.class.html (limited to 'Data/Libraries/Penlight/docs/libraries/pl.class.html') diff --git a/Data/Libraries/Penlight/docs/libraries/pl.class.html b/Data/Libraries/Penlight/docs/libraries/pl.class.html new file mode 100644 index 0000000..b623e94 --- /dev/null +++ b/Data/Libraries/Penlight/docs/libraries/pl.class.html @@ -0,0 +1,332 @@ + + + + + Penlight Documentation + + + + +
+ +
+ +
+
+
+ + +
+ + + + + + +
+ +

Module pl.class

+

Provides a reuseable and convenient framework for creating classes in Lua.

+

Two possible notations:

+ + +
+B = class(A)
+class.B(A)
+
+ +

The latter form creates a named class within the current environment. Note + that this implicitly brings in pl.utils as a dependency.

+ +

See the Guide for further discussion

+ + +

Functions

+ + + + + + + + + + + + + + + + + + + + + +
_init (...)initializes an instance upon creation.
instance:is_a (some_class)checks whether an instance is derived from some class.
some_class:class_of (some_instance)checks whether an instance is derived from some class.
some_class:cast (some_instance)cast an object to another class.
class (base, c_arg, c)create a new class, derived from a given base class.
+ +
+
+ + +

Functions

+ +
+
+ + _init (...) +
+
+ initializes an instance upon creation. + + +

Parameters:

+
    +
  • ... + parameters passed to the constructor +
  • +
+ + + + +

Usage:

+
    +
    local Cat = class()
    +function Cat:_init(name)
    +  --self:super(name)   -- call the ancestor initializer if needed
    +  self.name = name
    +end
    +
    +local pussycat = Cat("pussycat")
    +print(pussycat.name)  --> pussycat
    +
+ +
+
+ + instance:is_a (some_class) +
+
+ checks whether an instance is derived from some class. + Works the other way around as class_of. It has two ways of using; + 1) call with a class to check against, 2) call without params. + + +

Parameters:

+
    +
  • some_class + class to check against, or nil to return the class +
  • +
+ +

Returns:

+
    + + true if instance is derived from some_class, or if some_class == nil then + it returns the class table of the instance +
+ + + +

Usage:

+
    +
    local pussycat = Lion()  -- assuming Lion derives from Cat
    +if pussycat:is_a(Cat) then
    +  -- it's true, it is a Lion, but also a Cat
    +end
    +
    +if pussycat:is_a() == Lion then
    +  -- It's true
    +end
    +
+ +
+
+ + some_class:class_of (some_instance) +
+
+ checks whether an instance is derived from some class. + Works the other way around as is_a. + + +

Parameters:

+
    +
  • some_instance + instance to check against +
  • +
+ +

Returns:

+
    + + true if some_instance is derived from some_class +
+ + + +

Usage:

+
    +
    local pussycat = Lion()  -- assuming Lion derives from Cat
    +if Cat:class_of(pussycat) then
    +  -- it's true
    +end
    +
+ +
+
+ + some_class:cast (some_instance) +
+
+ cast an object to another class. + It is not clever (or safe!) so use carefully. + + +

Parameters:

+
    +
  • some_instance + the object to be changed +
  • +
+ + + + + +
+
+ + class (base, c_arg, c) +
+
+ create a new class, derived from a given base class. + Supporting two class creation syntaxes: + either Name = class(base) or class.Name(base). + The first form returns the class directly and does not set its _name. + The second form creates a variable Name in the current environment set + to the class, and also sets _name. + + +

Parameters:

+
    +
  • base + optional base class +
  • +
  • c_arg + optional parameter to class constructor +
  • +
  • c + optional table to be used as class +
  • +
+ + + + + +
+
+ + +
+
+
+generated by LDoc 1.4.6 +
+
+ + -- cgit v1.1-26-g67d0