Lua tricks [1]

table.concat

【函数说明】

Lua中table库提供的字符串连接函数,可以将一个序列内的字符串元素连接成一个长字符串。功能与“..”操作符类似,但鉴于".."操作符每次拼接字符串时,都会对字符串进行内存拷贝,所以该函数在拼接长字符串的时候性能较好。

【用法】

函数变参个数为4,依次为字符串序列、拼接符、起始元素下标、终止元素下标。

[vimos@vimos Documents]$ lua
Lua 5.1.4  Copyright (C) 1994-2008 Lua.org, PUC-Rio
> a={"1","2","a","c"}
> print(table.concat(a))
12ac
> print(table.concat(a,"%"))
1%2%a%c
> print(table.concat(a,"%",2,3))
2%a
> 

【易犯错误】

该函数的首个参数为一个序列,即数组类型的表,不能存在hole,否则拼接失败。

示例中的表的下标不全部是数值,即不满足数组的条件,拼接失败

[vimos@vimos Documents]$ lua
Lua 5.1.4  Copyright (C) 1994-2008 Lua.org, PUC-Rio
> a={["1"]=1,["2"]=2,["a"]=3,["c"]=4}
> print(table.concat(a))

> >a={1,2,["a"]=3,["c"]=4}
> print(table.concat(a))
12
> 

参考文章:

[1]Beginning Lua programming / Kurt Jung and Aaron Brown.p. cm.ISBN-13: 978-0-470-06917-2 (pbk.)ISBN-10: 0-470-06917-1 (pbk.)1. Lua (Computer program language) I. Brown, Aaron, 1973- II. Title.QA76.73.L82J96 2007005.13’3--dc22




  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值