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

Lua基礎教程之表(Table)學習筆記

 更新時間:2014年09月28日 09:09:25   投稿:junjie  
這篇文章主要介紹了Lua基礎教程之表(Table)學習筆記,本文來自個人總結,需要的朋友可以參考下

復制代碼 代碼如下:

    a = { }
    b = { x = 1, ["hello, "] = "world!" }
    a.astring = "ni, hao!"
    a[1] = 100
    a["a table"] = b
    function foo()
    end
    function bar()
    end
    a[foo] = bar
    --分別窮舉表a和b
    for k, v in pairs(a) do
        print(k, "=>", v)
    end
    print("----------------------------")
    for k, v in pairs(b) do
        print(k, "=>", v)
    end

復制代碼 代碼如下:

--輸出結果
1 => 100
a table => table: 003FB3A0
function: 003FCBB0 => function: 003FCBD0
astring => ni, hao!
----------------------------
hello,  => world!
x => 1

定義表(Table)的方式:a = {}, b = {…}

訪問表的成員:通過“.”或者“[]”運算符來訪問表的成員。注意:表達式a.b等價于a[“b”],但不等價于a[b]

復制代碼 代碼如下:

    local b = {"h", 20} --《=》 {[1]="h", [2]=20}  《=》local b={};b[1]="h";b[2]=20
    local d = {x=0, y=0}  --《=》local d = {}; d.x=0; d.y=0 《=》local d = {}; d["x"]=0; d["y"]=0

表項的鍵和值:任何類型的變量,除了nil,都可以做為表項的鍵。從簡單的數(shù)值、字符串到復雜的函數(shù)、表等等都可以;同樣,任何類型的變量,除了nil,都可以作為表項的值。給一個表項的值賦nil意味著從表中刪除這一項,比如令a.b= nil,則把表a中鍵為“b”的項刪除。如果訪問一個不存在的表項,其值也是nil,比如有c = a.b,但表a中沒有鍵為“b”的項,則c等于nil。

一種簡單的對象實現(xiàn)方式

復制代碼 代碼如下:

function CreateStudent(ID,Name)
   local Obj={id=ID,name=Name};
    function Obj:GetID()
    return self.id;
 end
 function Obj.GetName(self)
    return self.name;
 end
 function Obj:SetID(ID)
    self.id=ID;
 end
 Obj.SetName=function(self,Name)
 self.name=Name
 end
 return Obj;
end

s1=CreateStudent(1,"andy");
print("s1'id=",s1:GetID(),"s1'name=",s1.GetName(s1))

s1:SetID(2);
s1.SetName(s1,"lili");
print("s1'id=",s1:GetID(),"s1'name=",s1:GetName())

--輸出結果
--s1'id= 1 s1'name= andy
--s1'id= 2 s1'name= lili

對象工廠模式:如上面代碼的create函數(shù)

用表來表示對象:把對象的數(shù)據(jù)和方法都放在一張表內,雖然沒有隱藏私有成員,但對于簡單腳本來說完全可以接受。

成員方法的定義:function obj:method(a1, a2, ...) … end <==>function obj.method(self, a1, a2, ...) … end <==>obj.method = function (self, a1, a2, ...) … end
成員方法的調用:obj:method(a1, a2, …) <==>obj.method(obj, a1, a2, ...)

簡單繼承

復制代碼 代碼如下:

function CreateStudent(ID,Name)
   local Obj={id=ID,name=Name};
    function Obj:GetID()
    return self.id;
 end
 function Obj.GetName(self)
    return self.name;
 end
 function Obj:SetID(ID)
    self.id=ID;
 end
 Obj.SetName=function(self,Name)
 self.name=Name
 end
 return Obj;
end

function CreateClassStudent(ID,Name,Class)
   local obj=CreateStudent(ID,Name);
    obj.class=4;
   function obj:GetClass()
      return self.class;
   end
   function obj.SetClass(self,class)
      self.class=class;
   end
   return obj;
end

s2=CreateClassStudent(1,"andy",5);
print("s2'class=",s2.GetClass(s2))

優(yōu)點:簡單、直觀 缺點:傳統(tǒng)、不夠動態(tài)

相關文章

  • 淺談chuck-lua中的多線程

    淺談chuck-lua中的多線程

    Lua對多線程支持初步體驗是本文要介紹的內容,主要是來了解LUA中多線程的使用,,經(jīng)過反復的實驗得到的結果是,lua不支持多線程,如何讓它支持?來看本文內容。
    2015-07-07
  • Lua中的metatable詳解

    Lua中的metatable詳解

    這篇文章主要介紹了Lua中的metatable詳解,本文詳細講解了metatable的作用、定義操作符行為、為 Lua 函數(shù)庫提供支持等內容,需要的朋友可以參考下
    2014-10-10
  • Lua協(xié)程(coroutine)程序運行分析

    Lua協(xié)程(coroutine)程序運行分析

    這篇文章主要介紹了Lua協(xié)程(coroutine)程序運行分析,本文講解分析了一段lua 協(xié)程代碼是如何運行的,需要的朋友可以參考下
    2015-05-05
  • Lua時間轉化的幾個小例子

    Lua時間轉化的幾個小例子

    這篇文章主要介紹了Lua時間轉化的幾個小例子,本文直接給出3段例子代碼,需要的朋友可以參考下
    2015-06-06
  • Lua中遍歷數(shù)組和table的4種方法

    Lua中遍歷數(shù)組和table的4種方法

    這篇文章主要介紹了Lua中遍歷數(shù)組和table的4種方法,本文講解了使用for遍歷、迭代器的方式遍歷等方法,同時提供一個復雜table的的遍歷方法,需要的朋友可以參考下
    2015-04-04
  • Lua的table庫函數(shù)insert、remove、concat、sort詳細介紹

    Lua的table庫函數(shù)insert、remove、concat、sort詳細介紹

    這篇文章主要介紹了Lua的table庫函數(shù)insert、remove、concat、sort詳細介紹,本文分別給出了這幾個函數(shù)的使用實例,需要的朋友可以參考下
    2015-04-04
  • Lua基本語法

    Lua基本語法

    Lua是相當簡單易學,本篇文章來給大家稍微講一下Lua的語法,不會長篇累牘得把Lua的所有語法都講一遍,這里通過以下幾點來講Lua語言的基礎語法。
    2015-05-05
  • Lua面向對象編程之類的簡單實現(xiàn)方式

    Lua面向對象編程之類的簡單實現(xiàn)方式

    這篇文章主要介紹了Lua面向對象編程之類的簡單實現(xiàn)方式,本文直接給出一個類的編碼實例,并詳細講解了調用方式,需要的朋友可以參考下
    2015-04-04
  • 使用Lua編寫Nginx服務器的認證模塊的方法

    使用Lua編寫Nginx服務器的認證模塊的方法

    這篇文章主要介紹了使用Lua編寫Nginx服務器的認證模塊的方法,即諸如當今流行的社交應用接入等功能,需要的朋友可以參考下
    2015-06-06
  • 詳解Lua中的元表概念

    詳解Lua中的元表概念

    這篇文章主要介紹了詳解Lua中的元表,是Lua入門學習中的基礎知識,需要的朋友可以參考下
    2015-05-05

最新評論

华蓥市| 新野县| 夹江县| 中西区| 绥芬河市| 徐州市| 南阳市| 咸宁市| 青河县| 彩票| 醴陵市| 深水埗区| 河北区| 孟连| 恩施市| 永丰县| 崇明县| 育儿| 潞西市| 大竹县| 全椒县| 夏河县| 新野县| 玉门市| 漾濞| 梅州市| 霍林郭勒市| 景谷| 苏州市| 新兴县| 客服| 安徽省| 易门县| 凉山| 黔东| 准格尔旗| 蓬莱市| 和田市| 称多县| 永登县| 兴业县|