lua使用心得

lua语言的一些注意事项

  • 在控制结构的条件中除了false和nil为假,其他值都为真。所以Lua认为0和空串都是真。
  • lua5.3之前的版本只支持浮点数,lua5.3才引入了对整数的支持,/仅支持浮点数除法,要实现C里的整除效果必须使用双斜杠//
  • 超过2个字符串连接的情况下应使用table.concat,而不能使用字符串连接符...,那样效率很差、内存占用高,因lua里的字符串同java一样是不可变的
  • 当table作为list使用时,下标从1开始(与其他语言大不一样,初学者最容易犯的错!)
  • lua里用的是引用传递而非值复制
  • 函数、变量命名建议使用类似C++的驼峰命名法
  • 注意ipairs和pairs的区别,前者访问list,后者访问map
  • table.unpack只能放在结尾使用,若放在中间,仅会取list的第一个元素
  • 使用dofile时,被调用的lua文件中,如果有非接口函数,应使用local 修饰之,避免名字空间污染
  • 尽量使用local来声明变量,可提高性能,同时避免可能的内存泄露
  • lua的lambda写法并不会带来效率损失,可放心使用

lua lint工具

基于lua源码,开发了一个lua lint工具,该插件能够做如下检查:

  1. 基本的语法正确性检查
  2. 未使用local来声明变量(因全局变量将导致内存泄露!)
  3. 调用未声明的全局变量
  4. 未使用local声明却被同一文件中其他函数调用的函数
相关推荐
2401_8582861116 分钟前
125.【C语言】数据结构之归并排序递归解法
c语言·开发语言·数据结构·算法·排序算法·归并排序
guygg881 小时前
基于matlab的FIR滤波器
开发语言·算法·matlab
双叶8361 小时前
(C++)学生管理系统(正式版)(map数组的应用)(string应用)(引用)(文件储存的应用)(C++教学)(C++项目)
c语言·开发语言·数据结构·c++
源代码•宸1 小时前
C++高频知识点(二)
开发语言·c++·经验分享
你怎么知道我是队长2 小时前
python-input内置函数
开发语言·python
jyan_敬言3 小时前
【C++】string类(二)相关接口介绍及其使用
android·开发语言·c++·青少年编程·visual studio
慕y2743 小时前
Java学习第十六部分——JUnit框架
java·开发语言·学习
liulilittle3 小时前
SNIProxy 轻量级匿名CDN代理架构与实现
开发语言·网络·c++·网关·架构·cdn·通信
Shartin3 小时前
CPT208-Human-Centric Computing: Prototype Design Optimization原型设计优化
开发语言·javascript·原型模式
dme.4 小时前
Javascript之DOM操作
开发语言·javascript·爬虫·python·ecmascript