当前位置: 首页 > news >正文

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声明却被同一文件中其他函数调用的函数
http://www.lryc.cn/news/124450.html

相关文章:

  • Docker升级后,出现Error response from daemon: Unknown runtime specified docker-runc
  • [Poetize6] IncDec Sequence
  • 通过Microsoft Loopback Adapter实现虚拟机和物理机的通信
  • 算法leetcode|70. 爬楼梯(rust重拳出击)
  • 基于epoll的TCP服务器端(C++)
  • 实时安全分析监控加强网络安全
  • 基于ipad协议的gewe框架进行微信群组管理(二)
  • 大数据-玩转数据-Flink网页埋点PV统计
  • 什么是伪类选择器?
  • PLY模型格式详解【3D】
  • Java的反射机制、Lambda表达式和枚举
  • 数据结构:堆的实现
  • zabbix-6.4 监控 MySQL
  • 深入探索:解读创意的力量——idea的下载、初步使用
  • Redis详解
  • 【Linux】高级IO
  • 动态HTTP代理与竞争情报收集的关联
  • kafka基本概念及操作
  • 分享个试卷去笔迹什么软件,几个步骤轻松擦除
  • ClickHouse(十八):Clickhouse Integration系列表引擎
  • 日常BUG——代码提交到了本地但是没有push,删除了本地分支如何恢复
  • Markdown语法
  • vue3表格,编辑案例
  • SQL Server Reporting Services 报错:报表服务器无法访问服务帐户的私钥
  • QT报表Limereport v1.5.35编译及使用
  • 互联网发展历程:从中继器口不够到集线器的引入
  • vue+flask基于知识图谱的抑郁症问答系统
  • 操作格子---算法集
  • 科研绘图chapter1:绘图原则与配色基础
  • Linux下grep通配容易混淆的地方