Lua 不依赖缩进表达结构,所以缩进混乱“不影响运行”——但影响协作:两个文件一个用制表符、一个用 4 空格,合并或互相拷贝函数后,缩进宽窄不一,end 的层级归属全靠数,改错层的概率倍增。缩进混用不报错、不影响运行,却让每一眼阅读都在消耗注意力。错误场景:
local function mixed(actor)
local a = 1
local b = 2
if a == b then
sendmsg(actor, 1, "相等")
end
end
三行三种缩进,视觉层级与真实层级脱节。
全项目统一空格缩进(推荐 4 空格,或团队既有约定):编辑器设“Tab 键输出空格”、粘贴代码后统一重排。示例代码如下:
local function aligned(actor)
actor = getplayerbyname(actor)
local a, b = 1, 2
if a == b then
sendmsg(actor, 1, "相等")
else
sendmsg(actor, 1, "不相等")
end
end
本篇的新技术点是“粘贴即重排”:从其他文件拷函数过来后,立即用编辑器的格式化功能统一缩进——混用发生在粘贴的瞬间,处理也要在粘贴的瞬间完成。
三步验证:混用版拷进编辑器观察缩进宽窄不一;全选重排后层级清晰;对照一个制表符在“8 空格宽”与“4 空格宽”设置下的显示差异,理解为什么制表符是协作雷区。
缩进统一的延伸是行宽约束:单行超过 120 字符就换行续写,续行缩进两倍于首行,长条件与长参数一眼分层。示例代码如下:
local function longCall(actor, itemName, price, count, bind, desc)
actor = getplayerbyname(actor)
giveitem(actor, itemName, count, bind,
desc or "默认来源")
end
全站技术干货持续更新:996 引擎 / Lua 实战帖,语法、参数与示例一篇讲透。进入文章地图 · 查看全部 →
设计初衷 活动币(节日代币、赛季积分)的灵魂问题是“过期怎么办”:永久保留则库存越滚越大、商店压力与经济失衡逐年加剧;一刀清…
设计初衷 打宝地图(高产出高风险的专属地图)是服务器产出的调节阀:普通图产出保底,打宝图产出上浮但设门槛。准入凭证的设计目标…
底层原理 把表转成可读字符串(调试输出、存档导出)时,循环引用是最大障碍:A 引用 B、B 引用 A,朴素递归无限展开直到栈…
底层原理 外部依赖抖动时,每次调用都傻等超时(2 秒),高峰期的失败请求排队堆积把脚本线程拖垮。熔断器的状态机:连续失败达到…
设计初衷 行会日常缺少“全 会一起嗨”的集体时刻:活动是少数人打的,福利是各自领的。行会祝福由会长或官员主动触发,全行会成员…
业务场景 新人入会是行会活跃的风向标:一条及时的欢迎语让新人三分钟内融入。自动欢迎的痛点是刷屏与模板疲劳:欢迎语千篇一律、连…