参考  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. Python爬虫学习1

    #coding=utf-8 from urllib2 import urlopen from bs4 import BeautifulSoup import urllib2 url="htt ...

  2. expr 命令

    求表达式变量的值.expr 命令读入 Expression 参数,计算它的值,然后将结果写入到标准输出. 用法:expr Expression Expression 参数规则: 用空格隔开每个项. 用 ...

  3. 修改目的端trail文件的最大大小--转载

    本文为原创,转载请注明出处: http://blog.csdn.net/msdnchina/article/details/38346435 修改目的端trail文件的最大大小. 本文产生的背景: 在 ...

  4. vim学习

    vim编辑器的工作模式分为3种 1.Command Mode 命令模式 2.Insert Mode 插入模式 3.Lastline Mode 底行模式 vim 打开文件时处于命令模式,i 可以切换到插 ...

  5. HEVC学习之一编码框架

    接触H265时间不是很长,看了一些东西,但是一直没有时间静下心来整理.H265的学习主要是参考万帅.杨付正的<新一代高效视频编码 H265/HEVC 原理.标准与实现>移书,这本书对H26 ...

  6. AChartEngine 图表绘制

    AChartEngine Android 平台的图表开发库, 能绘制 折线图, 饼图, 气泡图, 柱状图, 散点图, 面积图等统计图表. 这些我记录一下,柱状图.折线图和饼状图的小例子.有兴趣的朋友, ...

  7. 关于checkbox全选与反选的问题

    在一组checkbox中常有这样的需求,选择全选按钮,所有的选项必须全选上,当再次点击时,则所有的按钮必须反选,当点击一组checkbox时,只有有一个不选上,则按钮不选中,当所有的按钮全部选上时,此 ...

  8. 你注意了么?int与Integer的区别

    上次做项目时遇到了一个小问题. 我把javabean中的custid属性定义为int类型,当然与数据库中相应类型是一致的,而且在hibernate文件中配置时专门设置了not-null="f ...

  9. Li-Fi,LED光无线局域网

    无需WiFi信号,点一盏LED灯就能上网.昨天,复旦大学计算机科学技术学院传出好消 息,一种利用屋内可见光传输网络信号的国际前沿通讯技术在实验室成功实现.研究人员将网络信号接入一盏1W的LED灯珠,灯 ...

  10. 过渡transitioin

    一,什么是过渡(transition)? 1,transition 允许 CSS 元素的属性值在一定的时间区间内平滑地过渡. 2,可以在不使用 Flash 动画或 JavaScript 的情况下,在元 ...