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声明却被同一文件中其他函数调用的函数
相关推荐
LDR00614 天前
Type-C 快充全面升级!LDR6601 赋能个人护理便携电机,重塑剃须刀 / 理发器新体验
c语言·开发语言
雪碧聊技术14 天前
Tree.js是什么?一文讲透
开发语言·javascript·ecmascript
码云数智-园园14 天前
C++20 Modules 模块详解
java·开发语言·spring
swordbob14 天前
NIO的channel中什么是 fd(File Descriptor,文件描述符)
java·开发语言·nio
源分享14 天前
Java线程同步的多种实现方法(非常详细)
java·开发语言·jvm
Luminous.14 天前
C语言--day30
c语言·开发语言
何以解忧,唯有..14 天前
Go语言循环语句详解:for、range与循环控制
开发语言·算法·golang
謓泽14 天前
C语言不是语法,是通往机器的地图。
c语言·开发语言
云水一下14 天前
从零开始学 PHP 系列(一):PHP 的前世今生与开发环境搭建
开发语言·php
飞天狗11114 天前
零基础JavaWeb入门——第五课第二小节:九大内置对象 · 第2个:response(响应对象)
java·开发语言