lua
文章平均质量分 84
泡泡茶壶Wending
男
展开
-
lua闭包
从形式上来讲:子函数可以使用父函数中的局部变量,这种行为就叫做闭包! 闭包 = 函数 + 引用环境 ]] function FUN1() local num = 10 --upvalue(非局部变量,非全局变量,和C和C++中的成员变量有点类似) function InFun1() print(num) end function InFun2() num = num + 10 print(num...转载 2022-04-24 11:55:53 · 2854 阅读 · 1 评论 -
Lua和C++交互
先总结: Lua和C++是通过一个虚拟栈来交互的。 C++调用Lua实际上是:由C++获取函数,压入栈中先把数据放入栈中,由Lua去栈中取数据,然后返回数据对应的值到栈顶,再由栈顶返回C++。 Lua调C++也一样:先编写自己的C模块,然后注册函数到Lua解释器中,然后由Lua去调用这个模块的函数。 C++和Lua如何通信:1.Lua调用C++:先一句话概括:根据规定好的函数类型(返回int,参数是Lua_State*(共享栈))编写C++函数,然后调用lua_re原创 2022-01-08 11:01:45 · 2130 阅读 · 0 评论 -
LUA table.sort(array,compFun)快速排序 比较函数书写规范
local function comp(a, b) return a<bend比较函数表示a<b的返回结果,类似小于号的运算符重载。返回false的时候,a,b才会替换位置1:a==b时候,要返回true 这个大家应该都知道2:comp(a,b)==true的时候,要确保comp(b,a)==false,否则会报错。这么说可能不太明白。快排比较过程中, a和b做比较结果:comp(a,b)返回true时候,如果后面b和a做比较:comp(b,a)也返回tru...原创 2020-10-09 18:49:21 · 936 阅读 · 0 评论 -
lua、luac和luaJit
lua:lua其实就是为了嵌入其它应用程序而开发的一个脚本语言,lua优势1)lua是一个免费、小巧、简单、强大、高效、轻量级的嵌入式的脚本语言,lua当前的发行版本5.3.1只有276k。2)它是用C语言开发的项目,所以可以在大部分的操作系统上运行3)lua是目前速度最快的脚本语言,既可以提升语言的灵活性还可以最大限度的保留速度4)其语法非常简单,没有特例5)lua还可以作为C的API来使用luac和luajit是干什么的?luac和luajit都是lua语言的运.转载 2020-08-06 15:58:29 · 977 阅读 · 1 评论 -
Lua函数的尾调用
所谓尾调用,就是一个函数返回另一个函数的返回值:function f()…return g()end因为调用g()后,f()中不再执行任何代码,所以不需要保留f()的调用桟信息;Lua做了这样的优化,称为"尾调用消除",g()返回后,控制点直接返回到调用f()的地方。这种优化对尾递归非常有益,通常递归意味着调用桟的不断增长,甚至可能造成堆栈溢出;而尾递归提供了优化条件,编译器可...原创 2020-04-27 18:22:59 · 240 阅读 · 1 评论 -
调试时,Lua的print函数输出的内容同时输出到VS的“输出窗口”中
function babe_tostring(...) local num = select("#",...) local args = {...} local outs = {} for i = 1, num do if i > 1 then outs[#...转载 2019-01-16 16:27:50 · 915 阅读 · 0 评论 -
Lua中的元表与元方法学习总结(__index, __newindex)
原文:https://www.jb51.net/article/55812.htm (__newindex在下面有解释)前言元表对应的英文是metatable,元方法是metamethod。我们都知道,在C++中,两个类是无法直接相加的,但是,如果你重载了“+”符号,就可以进行类的加法运算。在Lua中也有这个道理,两个table类型的变量,你是无法直接进行“+”操作的,如果你定义了一个指定...转载 2018-08-13 11:35:29 · 1365 阅读 · 0 评论 -
lua——元表、元方法、继承
近日开始频繁使用Lua,发现身边有很多同学对元表的理解不太正确,于是把这块东西理了一下,分享出来Lua的表本质其实是个类似HashMap的东西,其元素是很多的Key-Value对,如果尝试访问了一个表中并不存在的元素时,就会触发Lua的一套查找机制,也是凭借这个机制来模拟了类似“继承”的行为举例说明:[plain] view plain copytempTable = {} print(temp...转载 2018-05-14 12:52:08 · 407 阅读 · 0 评论 -
lua中dofile,loadfile,require的区别
原创 2017-01-22 11:22:31 · 15495 阅读 · 0 评论