生成公告分隔线用循环拼接或手打 40 个等号——循环拼接每轮生成新串,40 轮就是 40 次分配;手打的等号改长度要逐个数。重复串的生成有专门接口。错误场景:
local line = ""
for i = 1, 40 do
line = line .. "="
end
print(line)
能跑但笨重:n 份重复串用拼接生成是平方级成本,n 大了肉眼可见地慢。
string.rep(s, n) 一行生成 n 份重复串,第三参数还能插入分隔符。规范写法。示例代码如下:
local line = string.rep("=", 40)
print(line)
print(string.rep("ab", 3, "*"))
第一行输出 40 个等号;第二行输出 ababab——分隔符只插在片段之间,不追加在末尾。
三步验证:循环版与 rep 版的输出逐字符一致;加第三参数分隔符验证插位规则;在跑马灯消息里用 string.rep("=", 40) 做裁决之杖竞拍的标题分隔条,不同分辨率客户端的显示宽度保持一致。
rep 配合长度计算可做简易排版补齐。示例代码如下:
local rows = { "裁决之杖", "骨玉权杖", "龙纹剑" }
for _, name in ipairs(rows) do
print(name .. string.rep(".", 20 - string.len(name)))
end
点线把名字补齐到统一宽度,右列价格自然对齐——注意 string.len 数的是字节,中文一个字占 3 字节,排版口径要按字节算。
全站技术干货持续更新:996 引擎 / Lua 实战帖,语法、参数与示例一篇讲透。进入文章地图 · 查看全部 →
【游戏】 一、一行代码拆解:if price < WATCH[goods] then notify end —— 关注降价的…
【游戏】 一、业务场景:赛季结算发现一名玩家胜率 10% 却排在黄金段——历史计分只加不减,积分体系失效 3 个月;积分赛—…
【语法】 一、抛坑提问:3 对括号能组成多少种合法序列?答案是 5——卡塔兰数列:每一项等于前一项乘 2 倍的 2n 减 1…
【语法】 一、抛坑提问:不想用全局随机函数(怕多处共享种子互相干扰),可自实现一个独立随机序列——线性同余法三行核心:乘、加…
【游戏】 一、一行代码拆解:PENDING[outId] = {by = actor, at = now} —— 双人复核的…
【语法】 一、隐蔽陷阱:圆周率小数位背不出更多就不算理解随机模拟?用蒙地卡罗法随机撒点统计,10 万个点能把圆周率估到两位小…