Lua 代码规范
首先声明,由于我们是在 Unity 中使用 Lua 开发,经常需要调用 C# 相关的一些 API,为了保证代码书写的统一,所以很多 Lua 命名规范参考了 C# 代码规范。
Pascal 命名法:每个单词首字母均大写,例如:FieldName。
Camel 命名法:第一个单词首字母小写,其余单词首字母大写,例如:fieldName。
类
使用 Pascal 命名法。
成员变量
使用 Camel 命名法。
方法
使用 Pascal 命名法。
方法参数
使用 Camel 命名法。
局部变量
使用 Camel 方式命名。
常量
使用 Pascal 命名法。(建议使用此方法,单词比全大写更好辨认)
1 |
|
也有人建议所有单词大写,多个单词之间用下划线 _ 隔开。
1 |
|
. 和 : 的使用约定
实例方法使用 :
静态方法使用 .
类的成员变量先声明后使用
Lua 表中的成员变量,是可以不声明,直接使用的。但此处建议成员变量像 C# 一样先声明后使用,以提升代码的可读性。
关于私有成员变量和私有方法
虽然有人建议私有成员变量和私有方法用_
开头,但综合考虑到代码的风格统一,我们暂不区分成员变量和方法的公有私有写法,统一按照上述的成员变量 Camel 命名法,方法 Pascal 命名法。
扩展 Lua 原生方法
Lua 原生的一些方法,如 rawget, print, pcall, math.max, string.find, table.insert
等均是全小写,当我们扩展类似方法时,保持 Lua 原生的写法,如已添加的 declare, tryset, callback, string.split, string.startswith
等。
严格控制全局变量声明
为什么要严格控制全局变量声明?
在 Lua 中,不加 local
定义的变量即全局变量,全局变量定义后可以在项目的任意位置直接使用,全局变量使用如果不加限制,会导致代码结构逐渐变得混乱。随着项目功能模块增多,因为全局变量使用不当而导致的问题也不容易排查。
原则:不禁止使用全局变量,禁止的是全局变量的滥用。
1 |
|
总结示例:
1 |
|