Lua 中table.concat 连接 函数

本文深入讲解Lua中的table.concat函数,演示如何使用此函数高效地连接表中的字符串元素,包括分隔符、起始和结束位置的设置,并对比了其与for循环在性能上的优势。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

table.concat(table, sep,  start, end) 

concat是concatenate(连锁, 连接)的缩写. table.concat()函数列出参数中指定table的数组部分从start位置到end位置的所有元素, 元素间以指定的分隔符(sep)隔开。除了table外, 其他的参数都不是必须的, 分隔符的默认值是空字符, start的默认值是1, end的默认值是数组部分的总长. 

看到网上的一些例子方便大家更好的理解:

do
    --> table.concat  连接 函数

    tab = {"a", "c", "d", "b"}

    --(1)
    -- 一个参数,参数为 表(tab),作用为连接 tab 
    -- 中所有的 value

    print(table.concat(tab))   
    --> 输出结果: acdb

    --(2)
    -- 两个参数,参数一:表(tab),参数二:分隔符(nil),
    -- 作用为连接tab中所有的value,value 间以 nil 隔开

    print(table.concat(tab, nil))  
    --> 输出结果: acdb

    --(3)
    -- 三个参数,参数一:表(tab),参数二:分隔符 (" @@ "),
    -- 参数三:起始位置(2),作用为连接tab中所有的value,
    -- value 间以 " @@ " 隔开, 从 tab 的第二个value开始连接,
    -- 到 tab 的 end 

    print(table.concat(tab, " @@ ", 2))  
    --> 输出结果: c @@ d @@ b

    --(4)
    -- 四个参数,参数一:表(tab),参数二:分隔符 (" - "),
    -- 参数三:起始位置(2),参数四:结束连接位置,作用为连
    -- 接tab中所有的value,value 间以 " - " 隔开, 从 tab 
    -- 的第二个value  开始连接,到 tab 的 第 3 个 value结束连接

    print( table.concat(tab, " - ", 2, 3))  
    --> 输出结果: c - d


    print(table.concat(tab, " ## \n", 2, 4))   
    --> 输出结果:
    --> c ##
    --> d ##
    --> b


    --(5)
    for i,v in ipairs(tab) do
        print(i,v)
    end

    --> 输出结果:
    -- 1      a
    -- 2      c
    -- 3      d
    -- 4      b

    -- 说明 table.concat 不会改变 原始 table 即(tab) 的结构
end

 

为什么要使用table.concat去连接字符呢,使用一个for循环完全可以胜任?这是因为使用for循环会花费更多的时间

table.concat,concat函数对字符串连接进行了优化,即使进行大量的连接操作,也不会消耗多少时间。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值