参考  http://www.kancloud.cn/kancloud/lua_style_guide/66327

1、命名

1、命名法:小驼峰命名法,大驼峰命名法(Pascal命名法),小下划线命名法,大下划线命名法。 采用自己喜欢的和熟悉的,不要混用

2、作用域范围更大的变量名要比作用域小的变量名具有更多的描述信息

3、对于布尔型的变量,通常前缀加上is可以方便理解

4、包名和模块名通常很短,并且全部小写,单词间并没有下划线区分,比如:文件读取库名为lfs,表示 lua file system

5、文件名通常采用小驼峰命名法

2、作用域:

1、对于变量,在一切能使用local修饰的情况下,使用local进行修饰

  2、局部变量的作用域结束,被系统清理

3、注释

1、通常在-- 前加一个空格

2、对于接口注释

-- Delete a session

  -- @param id session identification

4、惯用法(精巧用法)

1、尽可能使用local修饰变量

原因:1、使用local的变量会在作用域结束时释放其内存

2、使用local的变量会比全局变量的存取更快

3、全局变量会污染全局的命名空间

2、直接判断真假值

  -- 不推荐

if obj ~= nil and willbreak == false  then  -- ...  end

--  推荐

    if obj and not willBreak then -- ... end

原因:lua在逻辑判断时将所有非false 和  非nil的逻辑判断视为真,反之视为假。不需要再与布尔值和nil进行对比。

但是,在需要对false和nil进行区分时,需要写明== : obj==nil 和 obj ==false

3、默认参数的实现

     function setName(name)   name = name or "noName"  end

   4、一行代码实现表的拷贝

     u = {unpack(t)}   

  5、一行代码判断表是否为空

       用#t==0 并不能判断表是否为空,因为#预算符会忽略所有不连续的数字下标和非数字下标

正确做法: if next(t) == nil then  -- 表为空 end   因为表的键可能为false,所以必须与nil比较,而不能直接使用~next(t)来                             判断表是否为空

6、更快的插入代码

tabel.insert(t,value)  -- 更慢,不推荐

t[#t+1] = value  -- 更快,推荐

原因:[]和#避免了高层的函数调用开销

lua 代码风格的更多相关文章

  1. Python 代码风格

    1 原则 在开始讨论Python社区所采用的具体标准或是由其他人推荐的建议之前,考虑一些总体原则非常重要. 请记住可读性标准的目标是提升可读性.这些规则存在的目的就是为了帮助人读写代码,而不是相反. ...

  2. .NET 项目代码风格要求

    原文:http://kb.cnblogs.com/page/179593/ 项目代码风格要求 PDF版下载:项目代码风格要求V1.0.pdf 代码风格没有正确与否,重要的是整齐划一,这是我拟的一份&l ...

  3. AngularJS之代码风格36条建议【一】(九)

    前言 其实在新学一门知识时,我们应该注意下怎么书写代码更加规范,从开始就注意养成一个良好的习惯无论是对于bug的查找还是走人后别人熟悉代码都是非常好的,利人利己的事情何乐而不为呢,关于AngularJ ...

  4. 自动生成查找组件的lua代码

    本篇主要解决的问题是使用lua脚本编写unity业务逻辑时,自动生成一些查找组件及绑定控件事件的lua代码! 现在很多unity项目都是用ulua作为热更新解决方案,因此需要用lua来写相关的逻辑,经 ...

  5. 【openresty】向lua代码中传递参数

    前面介绍FormInputNginxModule模块时,明白了openresty如何获取post提交的数据. 然后,如果需要通过lua处理这些数据,需要把数据作为参数传递到lua中,lua获取了这些数 ...

  6. Visual Studio Code 使用 ESLint 增强代码风格检查

    前言 在团队协作开发中,为了统一代码风格,避免一些低级错误,应该设有团队成员统一遵守的编码规范.很多语言都提供了Lint工具来实现这样的功能,JavaScript也有类似的工具:ESLint.除了可以 ...

  7. plain framework 1 参考手册 入门指引之 代码风格

    代码风格 介绍 介绍 框架自身采用了google的C++风格,作者也鼓励在你的应用中使用此风格,有关此风格你可以查阅相关资料了解.下面是一段plain framework中的代码,以便大家参考: 你可 ...

  8. 对 JimmyZhang 老师的文章《项目代码风格要求》的一些个人观点

    Jimmy Zhang 老师是博客园中我最佩服的人之一,今天看了他的文章<项目代码风格要求>觉得大部分地方我都很认同,工作中也是强迫自己也要按照规范来编程.下面是我的一些个人观点,想贴出来 ...

  9. python代码风格-PEP8

    转载自http://www.douban.com/note/134971609/ Python 的代码风格由 PEP 8 描述.这个文档描述了 Python 编程风格的方方面面.在遵守这个文档的条件下 ...

随机推荐

  1. (转)C# 打印PDF文件使用第三方DLL

    本文为转载,原文:http://www.cnblogs.com/Yesi/p/5066835.html DLL地址:https://freepdf.codeplex.com 下面是该解决方案的详细代码 ...

  2. Error 2103 “Unhandled Error in Silverlight Application“ 解决办法

    当调试SilverLight项目时,如果出现如下错误: 当调试页面时出现如下错误: 解决办法为:打开工程属性,在Startup object:处选择相应的启动应用程序.

  3. XML Schema命名空间解析

    URI Web中汇集了各种资源.资源可以是具有标识的任何事物, 如文档. 文件. 菜单项. 计算机. 服务等, 甚至可以包括人. 组织和概念[BernersLee 1998].在Web体系结构中, ...

  4. JSP 九大内置对象

    JSP 九大内置对象: 一 out对象主要用来向客户端输出各种数据类型内容,并且管理应用服务器上的输出缓冲区.out.print()//输出数据out.newLine()//输出一个换行符out.fl ...

  5. leetcode174. Dungeon Game

    // learn from https://discuss.leetcode.com/topic/6912/c-dp-solution ''' class Solution { public: int ...

  6. CNC系统实时性分析

    该系统有哪些强实时功能需求?需要对哪些实时事件进行实时响应,对允许的实时延迟的数量级进行估计. 答:数控系统中控制装置与现场设备通信的实时性要求,数控系统要快速而有效的对复杂而庞大的操作任务进行处理. ...

  7. CA签发工具

    #!/bin/bash #author Sun Ying #date:2015-12-17 if [ $# -lt 1 ];then echo -e "\033[34mUsage: `bas ...

  8. Vuejs使用笔记 --- component内部实现

    现在来系统地学习一下Vue(参考vue.js官方文档): Vue.js是一个构建数据驱动的web界面的库,其目标是实现响应的数据绑定和组合的试图组件. Vue.js拥抱数据驱动的视图概念,这意味着我们 ...

  9. php工作笔记2-php编码效率

    1.尽量静态化: 如果一个方法能被静态,那就声明它为静态的,速度可提高1/4,甚至我测试的时候,这个提高了近三倍.当然了,这个测试方法需要在十万级以上次执行,效果才明显.其实静态方法和非静态方法的效率 ...

  10. iOS图片模糊效果与阴影效果

    /** 添加图片模糊效果 @parms  要添加模糊效果的view @return */ + (UIVisualEffectView *)addVisualEffectViewWithView:(UI ...