table相連.png
前言#
從前有一個(gè)table叫table
巢株,說(shuō)起來(lái)挺有意思的衅疙,其實(shí)在lua的世界里確實(shí)有一個(gè)名字叫做table
的table上荡,我們知道在lua中表是非常重要的數(shù)據(jù)結(jié)構(gòu)扎酷,截止到上一章我們總結(jié)完所有的math
庫(kù)中的函數(shù),這一章我們開(kāi)始接觸table
的領(lǐng)域拂到,不得不說(shuō)這個(gè)配圖挺有意思的痪署,我在找配圖的過(guò)程中一直力求找到和本章有關(guān)聯(lián)的圖片,忽然發(fā)現(xiàn)了這個(gè)可以拼接的桌子兄旬,要知道桌子對(duì)應(yīng)的英文單詞也是table狼犯,這個(gè)就很好的切合了今天的主題,接下來(lái)我們一起來(lái)看一下這個(gè)函數(shù)的使用方法领铐。
內(nèi)容#
table.concat()##
- 原型:table.concat (table [, sep [, i [, j]]])
- 解釋?zhuān)悍祷乇碇械奶囟?xiàng)連接后的數(shù)據(jù)悯森,要求所連接的數(shù)據(jù)必須為數(shù)字或者字符串,級(jí)返回
table[i]..sep..table[i+1] ··· sep..table[j]
绪撵,其中參數(shù)sep
表示連接符瓢姻,默認(rèn)為空字符串""
,參數(shù)i
默認(rèn)為1音诈,參數(shù)j
默認(rèn)是table的length幻碱,如果參數(shù)i
大于j
的話(huà)绎狭,返回空字符串""
。
Usage##
首先新建一個(gè)文件命名為concattest.lua然后編寫(xiě)如下代碼:
-- 包含數(shù)字下標(biāo)
local tabLanguage = {
"c",
"c++",
"swift",
"java",
"100",
"90",
x = 1,
y = 1,
"80",
[8] = "test",
[100] = "end"
};
local concatret = table.concat(tabLanguage)
print("\ntable tabLanguage concat ret:")
print(concatret)
concatret = table.concat(tabLanguage, ",")
print("\ntable tabLanguage concat by \",\" ret:")
print(concatret)
concatret = table.concat(tabLanguage, ",", 3)
print("\ntable tabLanguage concat by \",\", 3 ret:")
print(concatret)
concatret = table.concat(tabLanguage, ",", 4, 6)
print("\ntable tabLanguage concat by \",\", 4, 6 ret:")
print(concatret)
-- 沒(méi)有數(shù)字下標(biāo)
local tabNotArray = {
x = 1,
y = 1,
z = 1,
[2] = "test"
};
local concatnotarray = table.concat(tabNotArray, ",")
print("\ntable tabNotArray concat by \",\" ret:")
print(concatnotarray)
- 運(yùn)行結(jié)果
table_concat.png
總結(jié)#
- 別看今天的輸出結(jié)果只有這么幾行褥傍,但顯示出來(lái)的信息確實(shí)不少儡嘶,首先除第一個(gè)參數(shù)外,其他參數(shù)可以從后往前依次省略恍风,這一點(diǎn)應(yīng)該很容易看出來(lái)蹦狂。
- 這個(gè)函數(shù)只處理了table中下標(biāo)為數(shù)字的數(shù)據(jù)。
- 進(jìn)一步來(lái)說(shuō)這個(gè)函數(shù)只處理了table中下標(biāo)為數(shù)字的并且數(shù)字下標(biāo)只能從1開(kāi)始朋贬,并且往后下標(biāo)是連續(xù)的才能被處理到凯楔,如果斷開(kāi)就結(jié)束了,比如
tabLanguage[100]
和tabNotArray[2]
就沒(méi)有出現(xiàn)在結(jié)果中兄世。 - table這一系列函數(shù)假定操作的table都是一個(gè)數(shù)組或者列表啼辣,也就是下標(biāo)必須從一開(kāi)始連續(xù)數(shù)列,這一條規(guī)律適合于這個(gè)
table
庫(kù)中的所有函數(shù)御滩。 - 在函數(shù)的解釋中我們說(shuō)過(guò)參數(shù)
j
的默認(rèn)值是length鸥拧,也就是從1開(kāi)始有序下標(biāo)的最大一個(gè),比如表tabLanguage
的length=8削解。