欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Lua中的類編程代碼實例

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

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

不像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) --類的實例化

  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())

相關文章

  • Lua中使用.和:調(diào)用函數(shù)的區(qū)別

    Lua中使用.和:調(diào)用函數(shù)的區(qū)別

    這篇文章主要介紹了Lua中使用.和:調(diào)用函數(shù)的區(qū)別,本文總結了它的調(diào)用函數(shù)的時傳入?yún)?shù)的區(qū)別,并給出了一個代碼實例,需要的朋友可以參考下
    2015-04-04
  • Lua性能優(yōu)化技巧(三):關于表

    Lua性能優(yōu)化技巧(三):關于表

    這篇文章主要介紹了Lua性能優(yōu)化技巧(三):關于表,本文講解了一些關于表的優(yōu)化技巧,需要的朋友可以參考下
    2015-04-04
  • Lua變量類型簡明總結

    Lua變量類型簡明總結

    這篇文章主要介紹了Lua變量類型簡明總結,本文總結了Lua中的6種變量類型,并一一說明,需要的朋友可以參考下
    2014-10-10
  • Lua中的for循環(huán)和迭代器的秘密探究

    Lua中的for循環(huán)和迭代器的秘密探究

    這篇文章主要介紹了Lua中的for循環(huán)和迭代器的秘密探究,本文講解了返回兩個值的迭代器、for .. in .. do的真面目、迭代器函數(shù)、恒定狀態(tài)、控制變量初值等內(nèi)容,需要的朋友可以參考下
    2014-09-09
  • Lua學習筆記之類型與值

    Lua學習筆記之類型與值

    本文詳細的總結了Lua中的類型與值,對于實際編程中容易出錯的地方也進行了詳細的總結,十分的全面實用。有需要的小伙伴可以參考下。
    2015-04-04
  • Lua中的table學習筆記

    Lua中的table學習筆記

    這篇文章主要介紹了Lua中的table學習筆記,本文講解了table.concat、table.insert、table.maxn、table.pack、 table.remove、table.sort等方法的使用,需要的朋友可以參考下
    2014-12-12
  • Lua基礎之運算符的使用示例

    Lua基礎之運算符的使用示例

    今天小編就為大家分享一篇關于Lua基礎之運算符的使用示例,小編覺得內(nèi)容挺不錯的,現(xiàn)在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧
    2018-12-12
  • Lua教程(四):在Lua中調(diào)用C語言、C++的函數(shù)

    Lua教程(四):在Lua中調(diào)用C語言、C++的函數(shù)

    這篇文章主要介紹了Lua教程(四):在Lua中調(diào)用C語言、C++的函數(shù),本文給出了多個示例講解如何在Lua中調(diào)用C/C++寫的函數(shù),需要的朋友可以參考下
    2014-09-09
  • Lua中實現(xiàn)StringBuffer功能

    Lua中實現(xiàn)StringBuffer功能

    這篇文章主要介紹了Lua中實現(xiàn)StringBuffer功能,本文給出了實現(xiàn)代碼和調(diào)用代碼,需要的朋友可以參考下
    2014-11-11
  • Lua中string.lower()使用指南

    Lua中string.lower()使用指南

    這篇文章主要介紹了Lua中操作字符串的基本方法整理,是Lua入門學習中的基礎知識,需要的朋友可以參考下
    2016-08-08

最新評論