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

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

 更新時(shí)間:2014年09月28日 08:49:05   投稿:junjie  
這篇文章主要介紹了Lua中table的一些輔助函數(shù)介紹,這些函數(shù)組成了table的函數(shù)庫,需要的朋友可以參考下

table庫是有一些輔助函數(shù)構(gòu)成的,這些函數(shù)將table作為數(shù)組來操作。其中,有對(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)用來說這個(gè)限制不是什么問題,比如當(dāng)所有的 array 有固定的類型的時(shí)候。但有些時(shí)候我們的 array 需要擁有 nil 元素,這種情況下,我們需要一種方法來明確的表明 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)樗麄儽仨殎砘匾苿?dòng)元素。然而,因?yàn)閠able庫這些函數(shù)使用C實(shí)現(xiàn),對(duì)于小的數(shù)組(幾百個(gè)元素)來說效率都不會(huì)有什么問題。

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

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

相關(guān)文章

  • Lua面向?qū)ο笾嘀乩^承、私密性詳解

    Lua面向?qū)ο笾嘀乩^承、私密性詳解

    這篇文章主要介紹了Lua面向?qū)ο笾嘀乩^承、私密性詳解,本文講解了多重繼承之在多個(gè)類中查找一個(gè)字段、多重繼承之創(chuàng)建繼承多個(gè)類的子類、類的私密性等內(nèi)容,需要的朋友可以參考下
    2014-09-09
  • Lua中的metatable介紹

    Lua中的metatable介紹

    這篇文章主要介紹了Lua中的metatable介紹,Lua 中的每個(gè)值都可以用一個(gè) metatable,個(gè) metatable 就是一個(gè)原始的 Lua table,它用來定義原始值在特定操作下的行為,要的朋友可以參考下
    2015-04-04
  • Lua腳本語言簡(jiǎn)明入門教程

    Lua腳本語言簡(jiǎn)明入門教程

    這篇文章主要介紹了Lua腳本語言簡(jiǎn)明入門教程,本文簡(jiǎn)潔干練,可以讓一個(gè)有編程基礎(chǔ)的快速的學(xué)會(huì)Lua腳本語言,需要的朋友可以參考下
    2014-09-09
  • Lua math.fmod使用時(shí)的小數(shù)問題

    Lua math.fmod使用時(shí)的小數(shù)問題

    這篇文章主要介紹了Lua math.fmod使用時(shí)的小數(shù)問題,math.fmod用于取模運(yùn)算,使用小數(shù)時(shí)可能會(huì)遇到不可預(yù)料的結(jié)果,所以應(yīng)該避免使用小數(shù),需要的朋友可以參考下
    2015-06-06
  • Lua腳本語言基本語法快速入門教程

    Lua腳本語言基本語法快速入門教程

    這篇文章主要介紹了Lua腳本語言基本語法快速入門教程,本文是一個(gè)簡(jiǎn)易教程,快速的羅列了常用語法,有一定編程語言基礎(chǔ)的同學(xué)更容易看芯片,需要的朋友可以參考下
    2015-07-07
  • Lua在各個(gè)操作系統(tǒng)中的開發(fā)環(huán)境配置教程

    Lua在各個(gè)操作系統(tǒng)中的開發(fā)環(huán)境配置教程

    這篇文章主要介紹了Lua在各個(gè)操作系統(tǒng)中的開發(fā)環(huán)境配置教程,包括Mac OS和Windows和Linux這三大系統(tǒng)下的安裝,需要的朋友可以參考下
    2015-05-05
  • Lua判斷字符串中包含中文字符的方法和計(jì)算字符串寬度函數(shù)分享

    Lua判斷字符串中包含中文字符的方法和計(jì)算字符串寬度函數(shù)分享

    這篇文章主要介紹了Lua判斷字符串中包含中文字符的方法和計(jì)算字符串寬度函數(shù)分享,需要的朋友可以參考下
    2015-04-04
  • Lua學(xué)習(xí)筆記之?dāng)?shù)據(jù)結(jié)構(gòu)

    Lua學(xué)習(xí)筆記之?dāng)?shù)據(jù)結(jié)構(gòu)

    這篇文章主要介紹了Lua學(xué)習(xí)筆記之?dāng)?shù)據(jù)結(jié)構(gòu),本文講解了數(shù)組、矩陣、鏈表、隊(duì)列等內(nèi)容,需要的朋友可以參考下
    2014-09-09
  • 淺析Lua編程中的異常處理

    淺析Lua編程中的異常處理

    這篇文章主要介紹了淺析Lua編程中的異常處理,是Lua入門學(xué)習(xí)中的基礎(chǔ)知識(shí),要的朋友可以參考下
    2015-05-05
  • Lua判斷字符串前綴是否為指定字符的3種方法

    Lua判斷字符串前綴是否為指定字符的3種方法

    這篇文章主要介紹了Lua判斷字符串前綴是否為指定字符的3種方法,本文還對(duì)三種方法分別做了性能測(cè)試,需要的朋友可以參考下
    2015-04-04

最新評(píng)論