-
Notifications
You must be signed in to change notification settings - Fork 15
Coding Standard
MrZ_26 edited this page Apr 6, 2024
·
4 revisions
注:小程序和外部库等部分代码可以不遵守
- 全部使用四个空格
- 文件尾要有空行
变量类型 | 格式 |
---|---|
库 | 全大写 |
库函数 | 小驼峰 |
局部函数 | 下划线开头小驼峰 |
全局变量 | 全大写 |
全局函数 | 小驼峰 |
需要阅读的局部变量 | 小驼峰 |
简单的局部变量 | 多个单词首字母或大写单字母 |
f() -- 语句末不需要加分号
if c1 then
s1
elseif c2 then
s2
else
s3
end
while c do
s
end
for i=1,#l do
s
end
for k,v in next,table do -- pairs(table)最好换成next,table
s
end
repeat
s
until c
do
s
end
单行代码 -- 注释1
-- 注释2
函数或者代码块
--[[ 这里最好带上几个字的概述,方便折叠的时候预览,方括号间等号能不带就不带
注释内容
]]
函数或者代码块
- 双引号:会输出到外部给玩家或者开发者阅读的字符串
- 单引号:只存在于代码中不对外展示的字符串
- 双方括号(等号能不带就不带):大段文本
该部分内容不适用于:
- 引入的其他lua库,可能会保留原作者代码风格
- 以形如
---@xxx
开头的行的“语法注释” - 用空格对齐大段内容的数据代码
逗号和(非字母)运算符两边不需要空格 也就是说,空格只在lua保留字旁用
- print(a, "b" .. c)
+ print(a,"b"..c)
- x = 1 / (2 + 3)
+ x=1/(2+3)
例外: “--”右侧 无名函数中的括号左侧
-- Comment
f=function() end
如果有多行代码合并到单行内更整齐,那么用分号+空格来合并,例如
a=5; func(a)
b=10; func(b)
- 如果一个函数只能接受一个输入,并且输入的值是table或者string,那么小括号要省略,例如
GC.execute{100,40
{'print',"Hello",0,0},
{'print',"World",0,20},
}
用正则查找替换,把 \s([,+\-*/=><"']|==|>=|<=|~=|\.\.)|([,+\-*/=><"']|==|>=|<=|~=|\.\.)\s
全部替换成 $1$2
- 注意,需要缩进模式为制表符,可以先切到制表符,替换好了再切回去
- 注意,字符串常量内的空格也会被替换,可以把表达式里的单双引号删除
- 注意,注释符号会有一些干扰,可以把表达式里的减号删除
所有标签必须使用下列前缀的一个:
BREAK_ 类似一般的break,用于跳出任意层,可能跳过循环后一部分代码CONTINUE_ 类似一般的continue,用于快速跳到循环的末尾执行下一次循环THROW_ 类似一般的catch,用于捕获错误或跳出一个块并执行统一操作REPEAT_ 返回到前面一个点,用于重新执行某个操作