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

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

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

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

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

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


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

--類測試
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")

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

--多重繼承測試
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í)例,本文用一個選擇排序算法為例講解如何在Lua中寫一個排序算法,需要的朋友可以參考下
    2015-04-04
  • Lua中__index和__newindex之間的沉默與合作

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

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

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

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

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

    這篇文章主要介紹了Lua常用時間函數(shù)使用實(shí)例,本文直接給出使用代碼實(shí)例,并附有詳細(xì)注釋,要用到哪個復(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)備一個初值的方法,需要的朋友可以參考下
    2015-04-04
  • Lua下基本的網(wǎng)絡(luò)編程示例

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

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

最新評論

林周县| 宜兰市| 仪征市| 兴仁县| 平湖市| 高阳县| 汶上县| 麻城市| 林甸县| 台东市| 治县。| 高淳县| 永平县| 柳河县| 鹤山市| 峨山| 连州市| 应用必备| 微博| 定边县| 仙游县| 五华县| 咸丰县| 榆社县| 杭锦旗| 溧阳市| 荆门市| 仁化县| 峨眉山市| 乌兰县| 建昌县| 沛县| 洛隆县| 龙州县| 五常市| 义乌市| 乐清市| 汤原县| 静海县| 剑河县| 安义县|