最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Lua實現(xiàn)類繼承

 更新時間:2015年03月09日 16:53:37   投稿:hebedich  
這里給大家演示的是一個使用lua實現(xiàn)類繼承的示例,實現(xiàn)類繼承其實有很多種寫法,這里是本人常用的方法,推薦給大家。

mulInherit.lua

復(fù)制代碼 代碼如下:

--[[
author:looyer@sina.com
date:2014/7/18
purpose:lua的繼承演示
--]]
--- base class "Object"
local Object = {_t = "Object"}
function Object:new(id)
    local o =
    {
        _id = id
    }
    setmetatable(o, self)
    self.__index = self
    return o
end
function Object:type()
    return self._t
end
function Object:id()
    return self._id
end
--- class "Widget" driver from "Object"
local Widget = {_t = "Widget"}
setmetatable(Widget, Object)
function Widget:new(id)
    local o =
    {
        _id = id,
    }
    setmetatable(o, self)
    self.__index = self
    -- function (tb, key)
    --  return self[key]
    -- end
    return o
end
-- function Widget:id()
--  return self._id
-- end
--- class "Drawor" driver from "Object"
local Drawor = {_t = "Drawor"}
setmetatable(Drawor, Object)
function Drawor:new(id, name)
    local o =
    {
        _id = id,
        _name = name,
    }
    setmetatable(o, self)
    self.__index = self
    return o
end
function Drawor:name()
    return self._name
end
--- class "DrawPlane" driver from "Widget" and "Drawor"
local DrawPlane = {_t = "DrawPlane", _father = {Widget, Drawor}}
function DrawPlane:new(id)
    local o =
    {
        _id = id,
    }
    setmetatable(o, self)
    self.__index =
    function (tb, key)
        if self[key] then return self[key] end
        for _, v in pairs(self._father) do
            if v._t == key then return v end
            if v[key] then return v[key] end
        end
    end
    return o
end
local varA = Object:new()
local varB = Widget:new(10)
local varC = Drawor:new(30, "dwr")
local varD = DrawPlane:new(51)
print("varA type:", varA:type())
print("varB type:", varB:type())
print("varB._id: ", varB._id, varB:id())
print("varC name: ", varC:name())
print("varD type: ", varD:type())
print("varD id: ", varD:id())
print("varD father Widget--", varD.Widget:type())

以上就是本文所要分享的代碼了,希望大家能夠喜歡。

相關(guān)文章

  • Lua獲取utf8字符串長度和字符串截取并用...代替

    Lua獲取utf8字符串長度和字符串截取并用...代替

    這篇文章主要介紹了Lua獲取utf8字符串長度和字符串截取并用...代替,本文直接給出兩個函數(shù)的實現(xiàn)代碼,需要的朋友可以參考下
    2015-04-04
  • Lua中的協(xié)同程序探究

    Lua中的協(xié)同程序探究

    這篇文章主要介紹了Lua中的協(xié)同程序探究,本文講解了什么是協(xié)同程序、創(chuàng)建協(xié)同程序、更像樣的協(xié)同程序、讓協(xié)同程序掛起、resume操作的返回值,需要的朋友可以參考下
    2014-09-09
  • lua 基礎(chǔ)教程

    lua 基礎(chǔ)教程

    Lua 的語法比較簡單,學(xué)習(xí)起來也比較省力,但功能卻并不弱。所以,我只簡單的歸納一下Lua的一些語法規(guī)則,使用起來方便好查就可以了。估計看完了,就懂得怎么寫Lua程序了。
    2015-09-09
  • 讓你的python代碼更加pythonic(簡練、明確、優(yōu)雅)

    讓你的python代碼更加pythonic(簡練、明確、優(yōu)雅)

    這篇文章主要介紹了讓你的python代碼更加pythonic(簡練、明確、優(yōu)雅),本文講解的是一種讓代碼更加清晰、簡練、明確、優(yōu)雅的書寫方法,需要的朋友可以參考下
    2014-10-10
  • Lua中的基本數(shù)據(jù)類型詳細介紹

    Lua中的基本數(shù)據(jù)類型詳細介紹

    這篇文章主要介紹了Lua中的基本數(shù)據(jù)類型詳細介紹,本文詳細的講解了Lua中的8種基本數(shù)據(jù)類型,需要的朋友可以參考下
    2014-09-09
  • Lua編程示例(一):select、debug、可變參數(shù)、table操作、error

    Lua編程示例(一):select、debug、可變參數(shù)、table操作、error

    這篇文章主要介紹了Lua編程示例(一):select、debug、可變參數(shù)、table操作、error,本文直接給出代碼實例,需要的朋友可以參考下
    2015-07-07
  • Lua編程中的一些基本語法整理

    Lua編程中的一些基本語法整理

    這篇文章主要介紹了Lua編程中的一些基本語法整理的相關(guān)資料,是Lua入門中最基礎(chǔ)的知識,需要的朋友可以參考下
    2015-05-05
  • 最新評論

    山阳县| 康定县| 长宁区| 新田县| 塔河县| 额尔古纳市| 东光县| 四会市| 蓝山县| 荣成市| 汝阳县| 深州市| 南召县| 三台县| 深州市| 盐边县| 武乡县| 杂多县| 湟中县| 登封市| 从化市| 拜城县| 天镇县| 志丹县| 巴青县| 宝坻区| 红桥区| 改则县| 仙桃市| 綦江县| 富阳市| 丽水市| 桦川县| 定州市| 历史| 垣曲县| 崇州市| 旬邑县| 板桥市| 宜城市| 洛南县|