发帖
充值
 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
2 0

Lua语法小贴士(四)字符串缓冲

教程专区 5346 2 2022-5-15 11:45:56
我们在写Lua代码的时候,如果需要对一个字符串进行反复的连接操作的话,会造成极大的性能开销。因为字符串是不可变的值,所以当我们对字符串操作的时候,每次都会生成一个新的字符串。例如我们需要对一个10000字节的字符串str增加一个字符的时候,就会创建一个10001字节的字符串str_copy,然后再复制str到str_copy里面。所以我们需要字符串缓冲(string buffer)来解决这个问题,而Lua里面,string buffer就可以使用table来实现。

local t = {}
local test = {"a","x","def","type","fire","time","bottle","xo","wtf"}
for i, var in ipairs(test) do
    t[#t+1] = var
    t[#t+1] = "\n"
end
local s = table.concat(t)
print(s)

当然我们也可以指定一个分隔符作为table.concat方法的第二个参数:
local t = {}
local test = {"a","x","def","type","fire","time","bottle","xo","wtf"}
for i, var in ipairs(test) do
    t[#t+1] = var
end
t[#t+1] = ""
local s = table.concat(t,"\n")
print(s)



使用道具 举报

2022-5-18 16:51:42
加油升级 提升权限和积分
2024-1-20 11:23:24
已阅即拥有!
您需要登录后才可以回帖 立即登录
高级模式
返回
教程专区