lua ——table的無言以對(duì)

lua中,萬物化table,table生萬物,哈哈哈哈,好像很厲害。

問題的由來:

之前想寫一個(gè)table排序,按順序處理排序后的table,然后輸出結(jié)果。然后遇到了一些了不得問題。找了半天原因發(fā)現(xiàn)是自己腦子不太好,決定婊一婊自己。

table的存放

table的存放其實(shí)和定義有關(guān)系

【系統(tǒng)指定key定義】

local tb = {1, 3, ad, 34}

此時(shí),tb中的值的key都是數(shù)字,而且是連續(xù)的key,遍歷table可以發(fā)現(xiàn)實(shí)際存放是順次的。就相當(dāng)于數(shù)組了。

【自指定key定義】

------如果我要定義一個(gè)table,他的key是不連續(xù)的,但是key又是可以按照大小排序的,此時(shí)定義table后,它實(shí)際存放的結(jié)果會(huì)不會(huì)是按照key的大小依次存放的呢?

------不會(huì),你死了這條心吧


table中,如果key值是不連續(xù)的,而且key的利用率不足50%(數(shù)量/最大key值),此時(shí),存放是使用的Hash算法。

所以,定義順序 != 存放的順序


table 常用function

【table.contact】將table元素連接為字符串

使用很簡單的呀:

table.concat( tablename, ", ", start_index, end_index )

然后:

多系喲,所以發(fā)現(xiàn)了嗎???

當(dāng)key不是連續(xù)的時(shí)候,這個(gè)蠢笨的table.concat 遇到第一個(gè)不連續(xù)的key就不繼續(xù)連接了

笨死了?。。?/p>

然后蠢笨的我:

table為嵌套的時(shí)候,將table中的所有元素連接起來,用到了書上說的遞歸:

【table.sort】

table.sort( tablename, sortfunction )

sortfunction是第二排序算法,不填寫時(shí),默認(rèn)的是對(duì)tablename內(nèi)的元素進(jìn)行升序排序。

終于寫到我要婊自己的地方了,我定義了一個(gè)key不連續(xù)的table,然后想對(duì)table內(nèi)的元素進(jìn)行排序,結(jié)果:

不說了,說多了都是淚。。

在對(duì)table進(jìn)行排序時(shí),需要對(duì)table進(jìn)行預(yù)處理。如果是要排序table的key,就要把table的key取出來,存放到新table中,對(duì)新table進(jìn)行排序。

總之,table不是數(shù)組,不能簡單的當(dāng)做數(shù)組來用


最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 1. Java基礎(chǔ)部分 基礎(chǔ)部分的順序:基本語法,類相關(guān)的語法,內(nèi)部類的語法,繼承相關(guān)的語法,異常的語法,線程的語...
    子非魚_t_閱讀 34,625評(píng)論 18 399
  • 一、基本數(shù)據(jù)類型 注釋 單行注釋:// 區(qū)域注釋:/* */ 文檔注釋:/** */ 數(shù)值 對(duì)于byte類型而言...
    龍貓小爺閱讀 4,436評(píng)論 0 16
  • java筆記第一天 == 和 equals ==比較的比較的是兩個(gè)變量的值是否相等,對(duì)于引用型變量表示的是兩個(gè)變量...
    jmychou閱讀 1,644評(píng)論 0 3
  • 當(dāng)我在工作中使用lua進(jìn)行開發(fā)時(shí),發(fā)現(xiàn)在lua中有4種方式遍歷一個(gè)table,當(dāng)然,從本質(zhì)上來說其實(shí)都一樣,只是形...
    Lee堅(jiān)武閱讀 2,672評(píng)論 0 51
  • 對(duì)酒當(dāng)歌 人生幾何 眾人皆醉 且自獨(dú)酌
    春衫涼閱讀 376評(píng)論 22 21

友情鏈接更多精彩內(nèi)容