濮阳杆衣贸易有限公司

主頁(yè) > 知識(shí)庫(kù) > Lua中table的一些輔助函數(shù)介紹

Lua中table的一些輔助函數(shù)介紹

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

table庫(kù)是有一些輔助函數(shù)構(gòu)成的,這些函數(shù)將table作為數(shù)組來(lái)操作。其中,有對(duì)列表中插入和刪除元素的函數(shù),有對(duì)數(shù)組元素進(jìn)行排序的函數(shù),還有對(duì)鏈接一個(gè)數(shù)組中所有字符串的函數(shù)。

0.table.getn()Lua 中我們經(jīng)常假定 array 在最后一個(gè)非 nil 元素處結(jié)束。

這個(gè)傳統(tǒng)的約定有一個(gè)弊端:我們的 array中不能擁有 nil 元素。對(duì)大部分應(yīng)用來(lái)說(shuō)這個(gè)限制不是什么問(wèn)題,比如當(dāng)所有的 array 有固定的類型的時(shí)候。但有些時(shí)候我們的 array 需要擁有 nil 元素,這種情況下,我們需要一種方法來(lái)明確的表明 array的大小.

1.tabel.insert()用于將一個(gè)元素插入到一個(gè)數(shù)組的指定位置,它會(huì)移動(dòng)后續(xù)的元素以空出空間,且是數(shù)組的長(zhǎng)度增加1.

eg:如果a是一個(gè)數(shù)組{10,20,30},調(diào)用table.insert(a,1,15)后,a變?yōu)閧15,10,20,30}。經(jīng)常使用的一個(gè)特殊情況是,我們不帶位置參數(shù)調(diào)用insert,將會(huì)在array最后位置插入元素(所以不需要元素移動(dòng))。

2.table.remove()函數(shù)刪除數(shù)組中指定位置的元素,并返回這個(gè)元素,所有后面的元素前移,并且數(shù)組的大小改變。不帶位置參數(shù)調(diào)用的時(shí)候,他刪除array的最后一個(gè)元素。

使用這兩個(gè)函數(shù),很容易實(shí)現(xiàn)棧、隊(duì)列和雙端隊(duì)列。我們可以初始化結(jié)構(gòu)為a={}。一個(gè)push操作等價(jià)于table.insert(a,x);一個(gè)pop操作等價(jià)于table.remove(a)。要在結(jié)構(gòu)的另一端結(jié)尾插入元素我們使用table.insert(a,1,x);刪除元素用table.remove(a,1)。最后兩個(gè)操作不是特別有效的,因?yàn)樗麄儽仨殎?lái)回移動(dòng)元素。然而,因?yàn)閠able庫(kù)這些函數(shù)使用C實(shí)現(xiàn),對(duì)于小的數(shù)組(幾百個(gè)元素)來(lái)說(shuō)效率都不會(huì)有什么問(wèn)題。

3.table.sort()他有兩個(gè)參數(shù):存放元素的數(shù)組和排序函數(shù)。

排序函數(shù)有兩個(gè)參數(shù)并且如果在array中排序后第一個(gè)參數(shù)在第二個(gè)參數(shù)前面,排序函數(shù)必須返回true。如果未提供排序函數(shù),sort使用默認(rèn)的小于操作符進(jìn)行比較。默認(rèn)是升序。

一個(gè)常見(jiàn)的錯(cuò)誤是企圖對(duì)表的下標(biāo)域進(jìn)行排序。在一個(gè)表中,所有下標(biāo)組成一個(gè)集合,但是無(wú)序的。如果你想對(duì)他們排序,必須將他們復(fù)制到一個(gè)array然后對(duì)這個(gè)array排序。

對(duì)于Lua來(lái)說(shuō),數(shù)組也是無(wú)序的。但是我們知道怎樣去計(jì)數(shù),因此只要我們使用排序好的下標(biāo)訪問(wèn)數(shù)組就可以得到排好序的函數(shù)名。這就是為什么我們一直使用ipairs而不是pairs遍歷數(shù)組的原因。前者使用key的順序1、2、……(ipairs),后者表的自然存儲(chǔ)順序(pairs)。

您可能感興趣的文章:
  • Lua中的table淺析
  • Lua中的元表(metatable)、元方法(metamethod)詳解
  • Lua中table的幾種構(gòu)造方式詳解

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

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《Lua中table的一些輔助函數(shù)介紹》,本文關(guān)鍵詞  Lua,中,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中table的一些輔助函數(shù)介紹》相關(guān)的同類信息!
  • 本頁(yè)收集關(guān)于Lua中table的一些輔助函數(shù)介紹的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章
    赤水市| 瑞安市| 金塔县| 拜城县| 罗江县| 临猗县| 六盘水市| 晋州市| 德昌县| 新龙县| 天津市| 剑阁县| 南汇区| 伊吾县| 东丽区| 乐亭县| 商水县| 鹤岗市| 扶绥县| 高密市| 盘锦市| 万全县| 甘泉县| 灵璧县| 永靖县| 靖江市| 贵阳市| 合山市| 成都市| 富民县| 军事| 邹城市| 临夏县| 化隆| 洱源县| 林西县| 六安市| 秦安县| 报价| 阿尔山市| 芜湖市|