
lua
寂寂寂寂寂蝶丶
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
Lua调用原理(Lua虚拟栈)
转载自:https://blog.youkuaiyun.com/zhuzhuyule/article/details/41086745一、Lua虚拟机的栈1.1先简单介绍下Lua虚拟机的栈,如图:规则:①若Lua虚拟机堆栈里有N个元素,则可以用 1 ~ N 从栈底向上索引,也可以用 -1 ~ -N 从栈顶向下索引,一般后者更加常用②堆栈的每个元素可以为任意复杂的Lua数据类型,堆栈中没有元素的空位,隐含为包含一个“空”类型数据特性:若有4个元素分别入栈,则:①. 正数索引,栈底是1,然转载 2020-12-09 11:58:57 · 2301 阅读 · 0 评论 -
lua中的setfenv和getfenv
转载自:https://blog.youkuaiyun.com/jayson520/article/details/51498848/ 当我们在全局环境中定义变量时经常会有命名冲突,尤其是在使用一些库的时候,变量声明可能会发生覆盖,这时候就需要一个非全局的环境来解决这问题。setfenv函数可以满足我们的需求。setfenv(f,table):设置一个函数的环境1.当第一个参数为一个...转载 2019-07-28 16:53:28 · 1617 阅读 · 0 评论 -
lua中的闭合函数closure、尾调用、lua中实现C++的static变量的方法
借鉴自:https://www.jb51.net/article/55117.htmhttps://blog.youkuaiyun.com/mydad353193052/article/details/48731467https://blog.youkuaiyun.com/qq826364410/article/details/88702685一、词法域、闭包、第一类型 在C/C++,C#或者Java...转载 2019-07-28 15:12:26 · 1047 阅读 · 0 评论 -
lua中require与package.loaded的关系以及脚本的重复加载
require(modname)require函数的功能为加载一个模块,这个函数首先查找package.loaded表,检测modname是否被加载过,如果被加载过,require返回package.loaded[modname]中保存的值,否则,它试着为模块寻找加载器用require函数只能加载一次文件,require函数的加载流程:1.require函数会搜索目录加载文件2.req...原创 2019-07-28 10:58:47 · 2219 阅读 · 0 评论 -
lua中__index、__newindex元方法
借鉴自:https://www.kancloud.cn/digest/luanote/119936https://blog.youkuaiyun.com/xocoder/article/details/9028347https://www.jb51.net/article/55155.htm__index元方法(索引查询):默认情况下,当我们访问一个table中不存在的字段时,得到的结果时nil,但是...转载 2019-07-26 21:06:32 · 682 阅读 · 0 评论 -
lua中table接口函数
借鉴自:https://www.cnblogs.com/whiteyun/archive/2009/08/10/1543139.htmlhttps://www.runoob.com/manual/lua53doc/manual.html#pdf-table.concattable.concat(table, sep, start, end)concat是concatenate(连锁, 连...转载 2019-07-26 19:28:52 · 833 阅读 · 0 评论 -
lua中 pairs 和 ipairs 的区别
转载自:https://www.runoob.com/note/11315相同点:都是能遍历集合(表、数组)不同点:ipairs:仅仅可以遍历值(也就是key以值形式存储的,如果为字符串等其他形式则不能遍历),且只能遍历到集合中出现的第一个不是整数的key,按照索引升序遍历,索引中断则停止遍历,如果遇到nil则退出pairs:能遍历集合中的所有元素,即pairs可以遍历集合中所有的key...转载 2019-07-26 16:40:50 · 238 阅读 · 0 评论 -
lua 中 . 和 : 的区别
转载自:https://blog.youkuaiyun.com/daimou123/article/details/50689623在lua中使用“:”定义的函数会自动传入一个名为self的变量,这个变量是隐含的,self同c++中的this一样,表示当前对象的指针,而“.”定义的函数中没有self。 function class:func2( ) end function class....转载 2019-07-26 16:19:15 · 238 阅读 · 0 评论 -
lua中垃圾回收机制、弱引用、__mode域元方法
垃圾回收机制(gc): lua使用自动内存管理机制,通过垃圾回收器来回收内存,垃圾回收器只能回收它认为是垃圾的内容,而不能回收用户认为是垃圾的内容,典型的例子---栈,栈一般用一个数组和一个表示顶部的索引值表示,如果弹出一个元素,那么仅是把栈顶索引减一,但这个元素还留在内存在被这栈数组引用着,所以垃圾回收器不知道它是垃圾,全局变量和table里的内容只能通过手动置为nil的方法来被...原创 2019-07-30 17:14:16 · 2392 阅读 · 0 评论 -
lua中常用的接口函数
转载自:https://www.cnblogs.com/whiteyun/archive/2009/08/12/1543184.html基本函数库为Lua内置的函数库,不需要额外装载assert (v [, message])功能:相当于C的断言,参数:v:当表达式v为nil或false将触发错误,message:发生错误时返回的信息,默认为"assertion failed!"col...转载 2019-07-28 16:08:42 · 1422 阅读 · 0 评论 -
lua中的错误处理(assert、error、pcall、xpcall、debug)
assert(conditions,message):assert函数首先检查第一个参数,若正确则继续往下执行,否则assert以第二个参数作为错误信息抛出local function add(a,b) assert(type(a) == "number", "a 不是一个数字") assert(type(b) == "number", "b 不是一个数字") retur...原创 2019-07-28 15:58:27 · 2823 阅读 · 0 评论 -
在VS中编译并运行lua文件
转载自:https://blog.youkuaiyun.com/qq_21031727/article/details/79494138第一步下载Lua源码,可以从官网下载,是一个压缩包。地址:http://www.lua.org/ftp/然后解压,比如F盘根目录。第二步VS中新建一个项目:我选择的是VC++,win32控制台应用程序。取名MyLuaProj,位置在F盘根目录。...转载 2019-07-08 10:21:51 · 3458 阅读 · 0 评论