【转】Lua编程规范
Lua编程规范
1. 版本和版权问题
版权和版本的声明位于定义文件的开头(参见示例1-1),主要内容有:
(1)版本号 <主版本号><次版本号><修订号>
(2)文件名称
(3)功能描述
(4)创建人
(5)创建时间
图1-1 版本信息示例
2. 排版
2.1 空格
程序块间要采用缩进风格编写,缩进空格数为Tab。连接运算符“..”两边要有空格。如:a .. b
2.2 空行
相对独立的程序块之间,如函数块之后必须加空行。(注:空行不占内存)如下:两个函数之间必须要加空行。
function distance(destX,destY,destZ,srcX,srcY,srcZ)
return math.sqrt((destX-srcX)^2+(destY-srcY)^2+(destZ-srcZ)^2)
end
function checkDistance(destX,destY,destZ,srcX,srcY,srcZ)
iw.log(“ssss”)
end
2.3 代码行
较长的语句要分成多行书写,每行代码不超过70字符,一行代码最好只做一件事情,比如只写一个语句,或只定义一个变量,这样的代码容易阅读,方便注释。
if…then…return…end要分行写,if、for等语句自占一行,执行语句不得紧跟其后。
2.4 比较规范
关系运算符两边最好用空格。
(1)nil : a == nil
(2)int/string: a == 163/ a == “Wingszero”
(3)Boolean: if a/if not a
(4)杜绝比较不同类型的对象
3. 注释
3.1 注释符号
单行注释:--
多行注释:--[[ --]]
3.2注释量
一般情况下,源程序有效注释量必须在20%以上。
3.3注释区域
注释通常用于以下:
(1)版本、版权声明;
(2)函数接口说明;
(3)重要的代码行或段落提示。
注释的位置应与被描述的代码相邻,可以放在代码的上方或右方,不可放在下方。注释与其下面的代码用空行分隔开来。如图3-1
图3-1
注意:注释的原则是有助于对程序的阅读理解,注释也不宜太多。注释可以是中文或英文,但最好用英文,防止产生乱码问题。
3.4 全局变量注释
全局变量要有较详细的注释,包括对其功能、取值范围、哪些函数存取它以及存取它时的注意事项等的说明。
4. 命名规范
(1) 变量:驼峰法,eg:playerName变量的命名要见名知意,便于阅读和修改。
(2)常量:大写加下划线 eg:KIND_PET_FOOD
(3)函数:和变量一致,eg:function checkTaskChainStatus()
(4)模块:小写加下划线:eg:item_factory_lua
5. 其他规范
(1)table的数据较多时考虑用如下形式增强可读性:
Local a = {
[1] = 108001
[2] = 108002
[3] = 108003
}
(2)尽量使用local变量而非global变量
(3)被多次读取的global变量,应提取出来放到local变量中
最新文章
- 【MySQL】优化—工欲善其事,必先利其器之EXPLAIN
- 使用jvisualvm.exe 的Btrace插件监控应用程序
- CCNA 6.5
- 3[doses] ------一种诡异的写法
- 【SPOJ 2319】 BIGSEQ - Sequence (数位DP+高精度)
- POJ 3450 Corporate Identity KMP解决问题的方法
- python向mysql中存储JSON及Nodejs取出
- JDK版本会影响项目部署
- Pythonh中的zip()与*zip()函数详解
- hashlib 简单加密
- C语言程序设计第五次作业——循环结构(1)
- Activity简单几步支持向右滑动返回
- Android为TV端助力:EventBus跨进程发送消息
- AlwaysOn配置时在连接步骤时报错(35250)
- zookeeper的Java端API应用
- Mesos+Zookeeper+Marathon的Docker管理平台部署记录(1)
- git pull refusing to merge unrelated histories
- jquery实现图片上传前本地预览功能
- 001.Postfix简介
- HDU 5839 Special Tetrahedron 计算几何
热门文章
- SqlServer之like、charindex、patindex(转载)
- js取整
- SSIS CDC(Change Data Capture)组件在数据库中启用报错。 The error returned was 14234: &#39;The specified &#39;@server&#39; is invalid
- Android 开发笔记 “广播组件使用”
- foreach遍历对象的属性
- PHP学习笔记9-生成图片
- jmeter 压力测试 参数
- django virtualenv
- 依赖和用jar包得区别
- 简单的java缓存实现