lua
  • 2024-07-02【Lua】脚本入门
    文章目录总述一、Lua概述二、Lua环境安装三、Lua基本语法四、Lua的库和扩展五、Lua的应用场景六、学习资源语法1.Lua基本语法示例变量和数据类型控制结构函数2.Lua标准库示例字符串操作数学函数文件I/O3.Lua作为脚本扩展示例(假设Lua嵌入在某个应用程序中)总述
  • 2024-07-01Lua实现链表(面向对象应用)
    Lua实现面向对象面向对象核心三要素Lua面向对象大致原理面向对象示例继承与多态示例面向对象核心三要素1.封装:对一个事物的抽象为一些属性和行为动作的集合,封装将属性和行为动作(操作数据的方法)绑定在一起,并隐藏对象的内部实现细节,只暴露给外部部分接口。2.继承是
  • 2024-07-01xlua 原理浅析(Wrap文件形式)
    对xluaCSharpCallLua和LuaCallCSharp以Wrap文件注册形式的大致流程梳理。废话不多说,我们要提出两个问题C#是如何调用lua的lua是如何调用C#的前置知识资料lua参考手册https://cloudwu.github.io/lua53doc/manual.htmlxluahttps://github.com/Tencent/xLuaxlua源码
  • 2024-06-17系统地学习Lua编程语言,掌握其基础知识并应用于实际项目中;Lua编程语言中级开发的大纲,涵盖了更深入的语法特性、高级库和工具,以及一些实际应用场景;Lua编程语言高级开发的大纲,涵盖了更深入的语法特
    学习Lua编程语言的初级开发大纲可以帮助你系统性地掌握这门语言的基础知识。下面是一个详细的大纲,从基础语法到基本的编程概念,再到一些实用的库和工具。Lua初级开发大纲1.Lua简介Lua的历史与特点Lua的应用场景安装与配置Lua环境2.基础语法注释:单行注释和多行注释
  • 2024-06-14ESP8266 NodeMCU Lua 开发看这里
    最近开发ESP8266-NodeMCU因为开发过合宙4G模块,用的Lua,所以这里也用Lua。但是最开始两眼一抹黑,在网上找资料,乱七八糟,需要Lua固件库、LuaAPI文档、Lua例程、固件下载工具、IDE(Lua代码编写和下载)、串口驱动(这是常识,就不用说了)找来找去,气死我了!!!!都是介绍下工具咋使用、弄个d
  • 2024-06-13盘点各领域的包管理器
    现在各个领域的包管理器越来越多了,简单盘点一下本人工作中接触过的: 1.Java领域MavenGradle 2.Node领域npmyarnpnpm 3.Linux领域apt(Debian家族)yum(RedHat家族7)dnf(RedHat家族8) 4.Python领域pipconda(Anaconda) 5.Lua领域opm(OpenResty的包管理
  • 2024-06-11nginx+lua(OpenResty),实现访问限制
    因发现平台日志中不定时会有同一IP发送大量的正常请求的情况,因程序没做请求频率的限制,就打算使用nginx+lua(OpenResty)+redis来做控制,发现请求频率高的IP,直接封掉,禁止访问。一、部署OpenResty1、安装工具和依赖yum-yinstallwgetvimgccpcre-developenssl-devel
  • 2024-06-01lua 开发环境搭建
    参考资料lua官网:https://www.lua.org/Lua最全的快速入门教程lua从入门到进厂Lua包管理–Luarocks使用指南Lua5.4中文参考手册linux下编译Lua源码,同时生成动态库.so静态库.a文件【最详细易懂】C++和Lua交互总结C++与Lua联合编程实战高性能混合编程:用脚本语
  • 2024-05-31Lua调用脚本文件(不存在则新建脚本文件)
    1.代码localstatus,calParaFun=pcall(require,calParaFileName)ifnotstatusthen--如果模块加载失败则创建脚本文件localfile=io.open(calParaFileName..".lua","w")iffilethenfile:write("--计算参数:"..name.."\n&quo
  • 2024-05-30Lua封装函数模块并由其他模块调用
    在Lua中,封装函数通常意味着将一组相关的功能组织在一起,然后通过模块的形式提供给其他脚本调用。Lua的模块可以是简单的脚本文件,也可以是返回一个表的脚本,表中包含了模块的所有公共函数和变量。以下是创建和使用Lua模块的基本步骤:1.创建模块创建一个Lua文件,比如mymodule.lua,并
  • 2024-05-29lua语言:模块热更新方案
    我们知道,lua通过package模块来管理模块的搜索和加载,当使用require首次成功加载一个模块后,模块(Table)会被存储在package.loaded中,之后的require行为会直接获取到已加载的模块缓存。如何在程序执行时,将对模块文件的修改热更新到程序中,同时确保运行时状态的正常。这是项目开发中常见
  • 2024-05-28lua拼接字符串
    在Lua中,拼接字符串可以使用多种方法,包括使用..操作符、string.format函数,或者使用循环和table.concat函数。下面是一些常见的字符串拼接示例:使用..操作符localpart1="Hello"localpart2="World"localresult=part1..""..part2print(result)--输出"HelloWorld
  • 2024-05-28Nginx(openresty) 通过lua结合Web前端 实现图片,文件,视频等静态资源 访问权限验证,进行鉴权 ,提高安全性
    1本文系统环境:安装openresty(nginx),可参考:test@ubuntuserver:~$cat/etc/os-releasePRETTY_NAME="Ubuntu24.04LTS"NAME="Ubuntu"VERSION_ID="24.04"VERSION="24.04LTS(NobleNumbat)"VERSION_CODENAME=nobleID=ubuntuID_LIK
  • 2024-05-27Lua定义字节流
    在Lua中,字节流通常表示为一系列字节(8位的数值)。由于Lua的表(table)是灵活的数据结构,可以作为数组和哈希表使用,因此可以用表来表示字节流。每个表元素代表一个字节,元素的索引表示字节在流中的位置。以下是一些定义和操作字节流的基本示例:定义空字节流localbyteStream={}定义
  • 2024-05-27Lua两个点号连接字符串
    在Lua中,两个点号..代表字符串连接操作符。当你想要将两个或多个字符串拼接在一起时,可以使用这个操作符。以下是使用..操作符的一些示例:localstr1="Hello,"localstr2="World!"localresult=str1..str2--结果为"Hello,World!"在这个例子中,str1和str2被
  • 2024-05-27Lua调用其他脚本
    Lua是一种轻量级的脚本语言,它通常用于嵌入式系统和游戏开发中。Lua本身并没有直接访问其他脚本文件的功能,但是你可以编写一个Lua脚本来加载和执行其他Lua脚本文件。以下是一些基本的方法来在Lua中访问和执行其他脚本:require:这是最常用的方法来加载其他Lua脚本。require函数
  • 2024-05-26简单实现Lua的面向对象
    参考了多篇文章和以往的项目经验,这里来写一篇在Unity游戏客户端开发面试的时候经常会被问到的如何实现lua的面向对象功能。众所周知面向对象有三大特性,封装、继承、多态,那么在这里我们用lua来分别实现这三个功能。一、封装假设我有一个类,我想要快速创建一个该类的实例化对象
  • 2024-05-26[Unity] 添加新建Lua脚本选项
    Unity添加新建Lua脚本选项最近学习Unity的XLua热更新框架的时候,会经常需要创建新的Lua脚本。然而,Unity本身不支持直接创建.lua后缀的文件,所以每次都必须手动在外部打开文件夹创建。为了提高效率,就需要在Unity新建文件的菜单中添加了一个“新建Lua脚本”的选项。并且,要达到和“
  • 2024-05-25go go-redis 使用lua保证操作的原子性
      Redis是应对高并发的常用工具,在常用缓存技巧中讲过相关技巧。但有些业务场景,使用Redis会遇到问题,如电商里的秒杀、扣减库存等。拿减库存举例,一般需要两步:先扣减库存,获取扣减后的库存值V如果V小于0,说明库存不够,需要将扣减的值再加回去;如果V大于等于0,则执行后续操作
  • 2024-05-25Unity热更学习--Lua脚本使用C#中的事件、委托和协程
    [14]lua调用使用C#中的事件和委托C#脚本:继续在Student类中声明//声明委托和事件publicUnityActiondele;publiceventUnityActioneventAction;publicvoidDoDele(){if(dele!=null)dele();}publicvoidDoEvent(){if(eventAction!=null)
  • 2024-05-24redis自学(44)多级缓存
              就是把注释全都删了  这里指的是OpenResty的Nginx配置文件   请求参数处理    先修改Nginx配置文件 修改lua文件,然后重启nginx   查询Tomcat   写lua文件做工具类      
  • 2024-05-24lua打印调用的函数文件及行数
    lua根据调用堆栈可以打印调谁调用了我 string.split=function(s,delim)localsplit={}localpattern="[^"..delim.."]+"string.gsub(s,pattern,function(v)table.insert(split,v)end)returnsplitendfunctiongetWhoCallsMe()
  • 2024-05-24lua 写一个类
    lua的创建类,自定义class--lua面向对象扩展local_class={}functionclass(super)localclass_type={}class_type.ctor=falseclass_type.super=superclass_type.new=function(...)localobj={}dolocalcre
  • 2024-05-23Lua中调用ref和out修饰参数的函数/重载函数
    [12]lua中调用ref和out修饰参数的函数数值publicintRefCompute(inta,refintb,refintc,intd){b+=a;c+=d;returnb+c;}publicintOutCompute(inta,outintb,outintc,intd){b=a+1;c=d+2;returnb+c;}
  • 2024-05-23lua的table, string, class常用扩展
    --lua扩展--table扩展--返回table大小table.size=function(t)localcount=0for_inpairs(t)docount=count+1endreturncountend--返回table的最大valuetable.maxn=function(t)localmaxn=nilfor_,vinpai