lua
文章平均质量分 69
mick_seu
这个作者很懒,什么都没留下…
展开
-
【Lua】Lua起航~
以后可能就要去做游戏了,那么Lua是不可或缺的,该篇短文讲解如何在 Linux 下配置 Lua。1、首先去 Lua 官网下载最新版本。2、解压tar xvf lua-5.3.3.tar.gz cd lua-5.3.33、编译 Linux 下安装包make linux4、构建完成后,可以运行 "make test" 来检查是否成功。 它会运行解释器并打印版本号。5、原创 2016-11-19 09:59:46 · 435 阅读 · 0 评论 -
【Lua】使用lfs遍历文件目录
到公司了,开始学习 Lua,看的《Programming In Lua》,大致看了五章,公司培训出的题。尝试用Lua脚本写一个文件系统访问的代码,要求遍历目录,输出文件名、文件类型(文件或是目录)以及文件的后缀名果然小白,搞了近3个小时。主要参考了:lua lfs库的使用,递归获取子文件路径 ,lua 获取文件名和扩展名,LuaFileSystem--lua原创 2017-07-11 21:58:33 · 6175 阅读 · 0 评论 -
【Lua】元表初学
metatable,Lua中的元表,是Lua中重要的内容。参考自:Lua中的元表与元方法(果冻想)在Lua代码中,只能设置table的元表。若要设置其它类型的值的元表,则必须通过C代码来完成。还存在一个特例,对于字符串,标准的字符串程序库为所有的字符串都设置了一个元表,而其它类型在默认情况下都没有元表。下面用一个简单的例子初探元表:__add元方法:原创 2017-09-05 16:04:33 · 368 阅读 · 0 评论 -
【Lua】“诡异”的return
类似其他语言,Lua也有return关键字,但需要注意其用法。因为它只能用在block结束的地方, 不能用在block的一个中间部分。想要使用 return 提前返回的童鞋注意了!例子:function fun() i = 1 return i i = 2endfun()结果报错:lua: a.lua:4: 'end' expected (to close 'f原创 2017-09-05 17:10:23 · 5856 阅读 · 3 评论 -
【Lua】面向对象
Lua使用table来面向对象。一个简单的 Account 类:Account = {balance = 0}function Account.sub(self, v) self.balance = self.balance - venda = Accounta.sub(a, 10)原创 2017-09-06 09:43:44 · 348 阅读 · 0 评论 -
【Lua】初探协程
类似于线程,协程拥有自己独立的栈、局部变量和指令指针。多个协程共享全局变量和其它大部分东西。线程与协程的主要区别在于,一个具有多个线程的程序可以同时运行几个线程,而协程却需要彼此协作的运行。就是说,一个具有多个协程的程序在任意时刻只能运行一个协程,并且正在运行的协程只会在其显式地要求挂起时,它的执行才会暂停。Lua将所有关于协程的函数放置在一个名为“coroutine”的table中。原创 2017-09-08 14:20:01 · 488 阅读 · 0 评论 -
【Lua】迭代器初学
和C++类似,Lua也有迭代器,如泛型for。泛型for需要三个值:迭代函数、状态常量、控制变量无状态的迭代器:无状态的迭代器是指不保留任何状态的迭代器,因此在循环中我们可以利用无状态迭代器避免创建闭包花费额外的代价。每一次迭代,迭代函数都是用两个变量(状态常量和控制变量)的值作为参数被调用,一个无状态的迭代器只利用这两个值可以获取下一个元素。这种无状态迭代器的典型的简单的例子是i原创 2017-09-04 18:12:35 · 445 阅读 · 0 评论 -
【Lua】Lua与C交互
上一篇文章简单介绍了在Lua中如何调用C,其中的原理还是需要稍微深究一下。文章参考自:Lua和C交互的简易教程(HansChen的博客)C/C++与Lua交互的基础源于虚拟栈。在Lua中,Lua堆栈就是一个struct,堆栈索引的方式可是是正数也可以是负数,区别是:正数索引1永远表示栈底,负数索引-1永远表示栈顶一个简单的例子:#include #includ原创 2017-09-25 10:03:22 · 1868 阅读 · 0 评论 -
【Lua】Lua调用C动态库
lua 好归好,但有很多对效率要求较高的服务,还得让C来完成。本篇学习下Lua如何调用C。最重要的部分:定义一个 luaopen_* 函数,并调用 luaL_openlib 函数int luaopen_mylib(lua_State *L){ luaL_Reg l[] = { {"test1",test1}, # key-val,相原创 2017-09-22 17:16:18 · 2871 阅读 · 0 评论