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声明却被同一文件中其他函数调用的函数
相关推荐
毕设源码-钟学长7 分钟前
【开题答辩全过程】以 基于Java的相机专卖网的设计与实现为例,包含答辩的问题和答案
java·开发语言
简单点好不好13 分钟前
大恒相机-mono12-python示例程序
开发语言·python·数码相机
后端小张34 分钟前
【JAVA 进阶】SpringAI人工智能框架深度解析:从理论到实战的企业级AI应用开发指南
java·开发语言·人工智能
MATLAB代码顾问1 小时前
MATLAB实现CNN(卷积神经网络)图像边缘识别
开发语言·matlab·cnn
FJW0208141 小时前
Python函数
开发语言·python
屁股割了还要学1 小时前
【C++进阶】STL-string的简单实现
c语言·开发语言·数据结构·c++·学习·考研
superlls1 小时前
(Java基础)集合框架继承体系
java·开发语言
ad钙奶长高高1 小时前
【C语言】原码反码补码详解
c语言·开发语言
IoT智慧学堂2 小时前
C语言运算符与表达式详解——算术、逻辑与赋值的全面理解
c语言·开发语言