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

Lua中的類編程代碼實(shí)例

 更新時(shí)間:2015年04月29日 09:13:57   投稿:junjie  
這篇文章主要介紹了Lua中的類編程代碼實(shí)例,本文直接用代碼講解類的創(chuàng)建、類的實(shí)例化、類的方法調(diào)用、類的繼承、類的多重繼承等面向?qū)ο缶幊谭椒?需要的朋友可以參考下

Lua的類有點(diǎn)像javascript,但是更簡(jiǎn)明靈活,table即對(duì)象,對(duì)象就是類。Metatables比起ruby里的MetaClass更加好用,缺點(diǎn)是實(shí)例化和繼承的代碼有點(diǎn)多,

不像ruby里的“<”和“<<”,繼承鏈就是查找方法時(shí)的方法鏈。

Account={
  test1=function(a) print("Account test1") end
}

Account.test2=function(a) print("Account test2") end

function Account.test3(a) print("Account test3") end


function Account:new (o) --類的實(shí)例化

  o = o or {}

  setmetatable(o, self)

  self.__index = self

  return o

end

function Account.print0(o,a)
  print(a)
end

function Account:print1(a)
  print(a)
end


--方法定義測(cè)試
Account.test1()
Account.test2()
Account.test3()

--類測(cè)試
acc=Account:new()
acc.test1()
acc.print0(acc,"dot print0")
acc:print0("not dot print0")
acc.print1(acc,"dot print1")
acc:print1("not dot print1")

acc.specialMethod=function(specialMethodTest)
  print(specialMethodTest)
end

acc.specialMethod("smt test")

--繼承測(cè)試
SpecialAccount = Account:new()
s = SpecialAccount:new{limit=1000.00}

--多重繼承測(cè)試
Named = {}

function Named:getname ()

  return self.name

end

function Named:setname (n)

  self.name = n

end

local function search (k, plist)

  for i=1, table.getn(plist) do

    local v = plist[i][k]

    if v then return v end

  end

end

function createClass (...)

  local c = {}   -- new class

  setmetatable(c, {__index = function (t, k)

  return search(k, arg)

end})

c.__index = c

function c:new (o)

  o = o or {}

  setmetatable(o, c)

  return o

end

  return c

end
NamedAccount = createClass(Account, Named)

account = NamedAccount:new{name = "Paul"}

print(account:getname())

相關(guān)文章

  • Lua中寫排序算法實(shí)例(選擇排序算法)

    Lua中寫排序算法實(shí)例(選擇排序算法)

    這篇文章主要介紹了Lua中寫排序算法實(shí)例,本文用一個(gè)選擇排序算法為例講解如何在Lua中寫一個(gè)排序算法,需要的朋友可以參考下
    2015-04-04
  • Lua中__index和__newindex之間的沉默與合作

    Lua中__index和__newindex之間的沉默與合作

    這篇文章主要介紹了Lua中__index和__newindex之間的沉默與合作,本文著重講解了__index和__newindex之間的聯(lián)系,需要的朋友可以參考下
    2014-09-09
  • Lua游戲開發(fā)教程之時(shí)區(qū)問題詳解

    Lua游戲開發(fā)教程之時(shí)區(qū)問題詳解

    時(shí)間顯示問題說白了就是時(shí)差問題,這篇文章主要給大家介紹了關(guān)于Lua游戲開發(fā)教程之時(shí)區(qū)問題的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2018-09-09
  • Lua常用時(shí)間函數(shù)使用實(shí)例

    Lua常用時(shí)間函數(shù)使用實(shí)例

    這篇文章主要介紹了Lua常用時(shí)間函數(shù)使用實(shí)例,本文直接給出使用代碼實(shí)例,并附有詳細(xì)注釋,要用到哪個(gè)復(fù)制即可,需要的朋友可以參考下
    2015-04-04
  • linux系統(tǒng)安裝Nginx Lua環(huán)境

    linux系統(tǒng)安裝Nginx Lua環(huán)境

    因項(xiàng)目需求,需要在Linux系統(tǒng)下搭建一套nginx+lua的開發(fā)環(huán)境,經(jīng)過一番摸索,現(xiàn)總結(jié)如下,希望大家能夠喜歡。
    2016-12-12
  • Lua中的table學(xué)習(xí)筆記

    Lua中的table學(xué)習(xí)筆記

    這篇文章主要介紹了Lua中的table學(xué)習(xí)筆記,本文講解了table.concat、table.insert、table.maxn、table.pack、 table.remove、table.sort等方法的使用,需要的朋友可以參考下
    2014-12-12
  • Lua中全局變量與非全局環(huán)境介紹

    Lua中全局變量與非全局環(huán)境介紹

    這篇文章主要介紹了Lua中全局變量與非全局環(huán)境介紹,本文講解了全局變量的原形、非全局的環(huán)境、改變函數(shù)的全局變量環(huán)境、使用__index元方法保留原來的_G,需要的朋友可以參考下
    2014-09-09
  • lua文件操作詳解

    lua文件操作詳解

    Lua中關(guān)于文件處理操作是本文要介紹的內(nèi)容,主要是來了解并學(xué)習(xí)lua中文件的相關(guān)操作,具體內(nèi)容的實(shí)現(xiàn)來看本文詳解。
    2016-03-03
  • Lua判斷變量是否為數(shù)字、字符串是否可以轉(zhuǎn)換為數(shù)字等

    Lua判斷變量是否為數(shù)字、字符串是否可以轉(zhuǎn)換為數(shù)字等

    這篇文章主要介紹了Lua判斷變量是否為數(shù)字、字符串是否可以轉(zhuǎn)換為數(shù)字等,本文講解了Lua 判斷是字符還是數(shù)字的方法、Lua判斷數(shù)字的方法、判斷可否轉(zhuǎn)換為數(shù)字的方法、判斷并且準(zhǔn)備一個(gè)初值的方法,需要的朋友可以參考下
    2015-04-04
  • Lua下基本的網(wǎng)絡(luò)編程示例

    Lua下基本的網(wǎng)絡(luò)編程示例

    這篇文章主要介紹了Lua下基本的網(wǎng)絡(luò)編程示例,包括簡(jiǎn)單的服務(wù)器的搭建和相關(guān)web組件的介紹等,需要的朋友可以參考下
    2015-05-05

最新評(píng)論

遂平县| 西吉县| 简阳市| 平湖市| 枣庄市| 肥东县| 富宁县| 合山市| 颍上县| 修水县| 田阳县| 大关县| 蓬溪县| 大余县| 定州市| 南开区| 沅陵县| 都昌县| 秦安县| 法库县| 双柏县| 丹棱县| 尼勒克县| 西藏| 襄垣县| 鹿邑县| 海门市| 廉江市| 启东市| 咸丰县| 耿马| 兴和县| 乡宁县| 贺州市| 陆丰市| 长治市| 肇州县| 龙江县| 巴林右旗| 霍邱县| 青冈县|