lua之class
发布时间:2020-12-14 22:14:06 所属栏目:大数据 来源:网络整理
导读:local _class= { } ? function class ( super ) local class_type= } class_type.ctor= false class_type.super=superclass_type.new= function ( ... ) local obj= } do local createcreate = ( c,... ) if c.super then create ( c.super,0)">end if c.cto
local _class={} ? function class(super) local class_type=} class_type.ctor=false class_type.super=super class_type.new=function(...) local obj=} do local create create = (c,...) if c.super then create(c.super,0)">end if c.ctor then c.ctor(obj,0)">end end ? create(class_type,102)">) end setmetatable{ __index=_class[class_type] }return obj end local vtbl=} _class]=vtbl ? {__newindex= (t,k,v) vtbl[k]=v end ) ? if super then (vtbl,102)">{__index= ) local ret=_class[super]] vtbl]=ret return ret end end ? return class_type end 现在,我们来看看怎么使用: base_type=class() -- 定义一个基类 base_type ? function base_type:ctor(x) -- 定义 base_type 的构造函数 print("base_type ctor") self.x=x end ? function base_type:print_x-- 定义一个成员函数 base_type:print_x (self.x) function base_type:hello-- 定义另一个成员函数 base_type:hello "hello base_type"以上是基本的 class 定义的语法,完全兼容 lua 的编程习惯。我增加了一个叫做 ctor 的词,作为构造函数的名字。 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |