
Lua
文章平均质量分 74
西溪漫步
这个作者很懒,什么都没留下…
展开
-
lua_call
lua_call,执行压入栈中的函数,该函数可能是lua中的函数,也可能是C++中定义的函数,一般用于执行lua中定义的函数。void lua_call(lua_State *L,int args,int ret),其中L是当前栈,args是被执行函数中的参数,ret是被执行函数返回值。void lua_pcall(lua_State *L,int args,int ret,int error_f原创 2018-01-19 14:07:30 · 5222 阅读 · 0 评论 -
Lua格式化打印输出
Lua没有断点调试,只能通过打印输出进行调试,非常不便,打印也只能打印简单的数据,稍微复杂一点的表也没法打印,下面封装了一个可以打印复杂的table的接口,可以直接拷贝使用:function Util.tablePrint(t) local print_t_cache={} local function sub_tablePrint(t,indent) if (pri...转载 2018-04-25 17:25:15 · 10272 阅读 · 0 评论 -
Lua堆栈
首先了解下c++与lua之间的通信:假设在一个lua文件中有如下定义-- hello.lua 文件myName = "beauty girl"请注意红色数字,代表通信顺序:1) C++想获取Lua的myName字符串的值,所以它把myName放到Lua堆栈(栈顶),以便Lua能看到2) Lua从堆栈(栈顶)中获取myName,此时栈顶再次变为空3) Lua拿着这个myName去Lua全局表查找my...转载 2018-06-01 17:45:42 · 1486 阅读 · 1 评论 -
Lua调用原理展示(lua的堆栈)
一、Lua虚拟机的栈1.1先简单介绍下Lua虚拟机的栈,如图:规则:①若Lua虚拟机堆栈里有N个元素,则可以用 1 ~ N 从栈底向上索引,也可以用 -1 ~ -N 从栈顶向下索引,一般后者更加常用②堆栈的每个元素可以为任意复杂的Lua数据类型,堆栈中没有元素的空位,隐含为包含一个“空”类型数据特性:若有4个元素分别入栈,则:①. 正数索引,栈底是1,然后一直到栈顶是逐渐+1,最后变成4(4大于1...转载 2018-06-01 17:52:45 · 357 阅读 · 0 评论 -
lua--函数深入:闭合函数,局部函数,尾调用
转载自:https://blog.youkuaiyun.com/yyhero1/article/details/46480299 lua函数具有两大特征:函数作为第一类值,函数具有特定的词法域(Lexical Scoping) 所谓第一类值:代表函数和其他传统类型的值是等价的(例如数字和字符串),函数可以同他们一样存储在变量,table中,可以作为实参传递,可以作为函数返回值。 对于第一类值,需要讲明,...转载 2018-08-24 22:21:31 · 1360 阅读 · 1 评论 -
如何在sublime 中配置lua的运行环境
转载自:https://blog.youkuaiyun.com/q270274978/article/details/79361369 第一,首先安装lua包,然后在终端查找lua安装位置 which lua 默认位置是/usr/local/bin/lua 第二,前往/Users/Library/Application\ Support/Sublime\ Text\ 2/Packages/Lua 这个...转载 2018-09-30 16:51:25 · 758 阅读 · 0 评论 -
Lua unpack函数用法
转载自:https://blog.youkuaiyun.com/xin5016867/article/details/49761141 这篇文章主要介绍了Lua UnPack函数用法实例,unpack它接受一个数组(table)作为参数,并默认从下标1开始返回数组的所有元素。 local info={1,2,3,4,5,6} local a,b,c,d,e,f=unpack(info) print(a,b...转载 2019-01-09 15:59:25 · 2262 阅读 · 0 评论 -
Lua C++交互机制
转载自:https://blog.youkuaiyun.com/v_xchen_v/article/details/77249332 一、Lua与C++的交互机制——Lua堆栈 1)交互机制 Lua和C++ 的交互机制的基础在于Lua提供了一个虚拟栈,C++ 和Lua之间的所有类型的数据交换都通过这个栈完成。无论何时C想从Lua中调用一个值,被请求的值将会被压入栈,无论何时C想要传递一个值给Lua,首先将整...转载 2019-03-16 13:01:10 · 431 阅读 · 0 评论 -
实现lua的面向对象编程、封装、继承和多态
转载自:https://www.2cto.com/kf/201805/744307.html 简介 1.lua面向对象编程是基于元表metatable,元方法__index来实现的,具体元表和元方法的介绍 请见Lua的元表metatable及元方法 2.语法糖 语法糖是由英国计算机科学家彼得·约翰·兰达(Peter J. Landin)发明的一个术语,指计算机语言中添加的某种语法,这...转载 2019-03-20 16:07:42 · 361 阅读 · 0 评论