婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av

主頁(yè) > 知識(shí)庫(kù) > Lua基礎(chǔ)教程之表(Table)學(xué)習(xí)筆記

Lua基礎(chǔ)教程之表(Table)學(xué)習(xí)筆記

熱門(mén)標(biāo)簽:武漢外呼防封系統(tǒng)多少錢(qián) 新岸線智能電銷機(jī)器人 個(gè)人怎么在地圖標(biāo)注需要的店鋪 冀州市地圖標(biāo)注 百度地圖標(biāo)注早餐區(qū)域 漳州智云呼電話機(jī)器人 清朝地圖標(biāo)注哈爾濱 怎么去除地圖標(biāo)注 地圖標(biāo)注大廈

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

    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

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

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

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

訪問(wèn)表的成員:通過(guò)“.”或者“[]”運(yùn)算符來(lái)訪問(wèn)表的成員。注意:表達(dá)式a.b等價(jià)于a[“b”],但不等價(jià)于a[b]

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

    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

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

一種簡(jiǎn)單的對(duì)象實(shí)現(xiàn)方式

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

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

--輸出結(jié)果
--s1'id= 1 s1'name= andy
--s1'id= 2 s1'name= lili

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

用表來(lái)表示對(duì)象:把對(duì)象的數(shù)據(jù)和方法都放在一張表內(nèi),雖然沒(méi)有隱藏私有成員,但對(duì)于簡(jiǎn)單腳本來(lái)說(shuō)完全可以接受。

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

簡(jiǎn)單繼承

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

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)點(diǎn):簡(jiǎn)單、直觀 缺點(diǎn):傳統(tǒng)、不夠動(dòng)態(tài)

您可能感興趣的文章:
  • Lua基礎(chǔ)教程之賦值語(yǔ)句、表達(dá)式、流程控制、函數(shù)學(xué)習(xí)筆記
  • 在Lua中使用模塊的基礎(chǔ)教程
  • lua 基礎(chǔ)教程

標(biāo)簽:儋州 天門(mén) 宣城 德宏 金昌 濰坊 天門(mén) 臺(tái)灣

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《Lua基礎(chǔ)教程之表(Table)學(xué)習(xí)筆記》,本文關(guān)鍵詞  Lua,基礎(chǔ),教程,之表,Table,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問(wèn)題,煩請(qǐng)?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無(wú)關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《Lua基礎(chǔ)教程之表(Table)學(xué)習(xí)筆記》相關(guān)的同類信息!
  • 本頁(yè)收集關(guān)于Lua基礎(chǔ)教程之表(Table)學(xué)習(xí)筆記的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章
    主站蜘蛛池模板: 海宁市| 泾源县| 东阿县| 石首市| 双鸭山市| 台北县| 抚顺市| 广元市| 大名县| 关岭| 拜泉县| 镇赉县| 乃东县| 聂荣县| 金塔县| 九龙县| 舒兰市| 黄平县| 海南省| 阿荣旗| 石狮市| 武山县| 内乡县| 昭苏县| 呼和浩特市| 大埔县| 名山县| 姜堰市| 乌什县| 攀枝花市| 石棉县| 武乡县| 静海县| 巴彦淖尔市| 资中县| 河北省| 遵义县| 长宁县| 台中市| 上林县| 新河县|