11 2016 档案

摘要:【前言】 在历史长河中,各种各样的新语言,总是伴随着我们编程人员;有的时候,工作的需要,我们不得不去学习这些很炫的,很新的语言。学习任何一门语言(我这里只说学习),都无非就是学习那么几个大模块,基本语法,标准库,函数或面向对象,内存管理。而对于Lua的学习,前面几个模块我都已经总结完毕了,而今天这篇 阅读全文
posted @ 2016-11-15 14:42 Ring_1992 阅读(1461) 评论(0) 推荐(0) 编辑
摘要:【那不是真的多线程】 Lua不支持真正的多线程,这句话我在《Lua中的协同程序》这篇文章中就已经说了。根据我的编程经验,在开发过程中,如果可以避免使用线程,那就坚决不用线程,如果实在没有更好的办法,那就只能退而用之。为什么?首先,多个线程之间的通信比较麻烦,同时,线程之间共享内存,对于共享资源的访问 阅读全文
posted @ 2016-11-14 14:45 Ring_1992 阅读(10411) 评论(0) 推荐(0) 编辑
摘要:【话从这里说起】 在我发表《Lua中的类型与值》这篇文章时,就有读者给我留言了,说:你应该好好总结一下Lua中的function和userdata类型。现在是时候总结了。对于function,我在《Lua中的函数》这篇文章中进行了总结,而这篇文章将会对Lua中的userdata进行仔细的总结。对于文 阅读全文
posted @ 2016-11-11 11:32 Ring_1992 阅读(7072) 评论(0) 推荐(1) 编辑
摘要:【前言】 在《再说C模块的编写(1)》中主要总结了Lua调用C函数时,对数组和字符串的操作,而这篇文章将重点总结如何在C函数中保存状态。 什么叫做在C函数中保存状态?比如你现在使用Lua调用了C函数Func1,但是Func1中有一些数据在调用完以后保存下来,供以后使用。而这些数据就是所谓的状态,也就 阅读全文
posted @ 2016-11-10 17:43 Ring_1992 阅读(697) 评论(0) 推荐(0) 编辑
摘要:【前言】 在《Lua“控制”C》中对Lua调用C函数做了初步的学习,而这篇才是重中之重,这篇文章会重点的总结C模块编写过程中遇到的一些问题,比如数组操作、字符串操作和C函数的状态保存等问题。现在就开始吧。 【数组操作】 在Lua中应该不能叫数组,而是一种table的东西;而在C语言中,没有table 阅读全文
posted @ 2016-11-10 09:49 Ring_1992 阅读(584) 评论(0) 推荐(0) 编辑
摘要:【前言】 Lua语言本身是一个功能非常有限,而比较单调的语言,而且标准库也非常的平庸,它的NB之处就在于,它能和C、C++等高级语言完美“私通”。我们可以使用C、C++语言去给Lua写一个完美的库,让Lua调用。而这里,我就要好好的总结一下,如何让Lua来“控制”C。 【基本知识】 上面说了,使用C 阅读全文
posted @ 2016-11-09 10:49 Ring_1992 阅读(645) 评论(0) 推荐(0) 编辑
摘要:【前言】 写过Windows程序的人都知道,对于应用程序,如果需要在本地保存一些配置信息,我们经常将这些配置信息写在注册表或者本地的配置文件中,很多应用都是将一些配置信息写在配置文件中,比如以ini结尾的文件,这种配置文件很多,使用的很广泛,然后应用程序在启动的时候,就会解析这个配置文件,读取一些配 阅读全文
posted @ 2016-11-08 17:06 Ring_1992 阅读(735) 评论(0) 推荐(0) 编辑
摘要:【前言】 对于Lua的基础总结总算告一段落了,从这篇博文开始,我们才真正的进入Lua的世界,一个无聊而又有趣的世界。来吧。 Lua语言是一种嵌入式语言,它本身的威力有限;当Lua遇见了C,那它就展示了它的强大威力。C和Lua是可以相互调用的。第一种情况是,C语言拥有控制权,Lua是一个库,这种形式中 阅读全文
posted @ 2016-11-08 09:43 Ring_1992 阅读(719) 评论(0) 推荐(0) 编辑
摘要:【前言】 在《Lua中的一些库(1)》中也说到了,要对string库的模式匹配进行单独的讲解。对于字符串的处理,对于任何语言的学习来说,都是一个难点,而且也是一个必会的知识点。给你一个字符串,让你按照某种需求进行处理,你不会,那是多么尴尬的一件事情。所以,看完《Lua中的一些库(1)》和这篇文章之后 阅读全文
posted @ 2016-11-07 17:42 Ring_1992 阅读(401) 评论(0) 推荐(0) 编辑
摘要:【前言】 在《Lua中的一些库(1)》这篇文章中,总结了一部分Lua中的库函数,一篇文章肯定是总结不完的,所以,就来一个《Lua中的一些库(2)》。希望大家能忍住。来吧。 操作系统库定义在table os中,其中包含了文件操作函数、获取当前日期和时间的函数。为了保证Lua的可移植性,所以对于文件库来 阅读全文
posted @ 2016-11-07 15:19 Ring_1992 阅读(289) 评论(0) 推荐(0) 编辑
摘要:【什么是DLL(动态链接库)?】 DLL是一个包含可由多个程序同时使用的代码和数据的库。例如:在Windows操作系统中,Comdlg32 DLL执行与对话框有关的常见函数。因此,每个程序都可以使用该DLL中包含的功能来实现“打开”对话框。这有助于促进代码重用和内存的有效使用。这篇文章的目的就是让你 阅读全文
posted @ 2016-11-07 09:41 Ring_1992 阅读(12908) 评论(0) 推荐(1) 编辑
摘要:【数学库】 数学库(math)由一组标准的数学函数构成。这里主要介绍几个常用的函数,其它的大家可以自行百度解决。 谨记:三角函数的参数都是弧度,在实际使用中不要忘了,是弧度。 floor:返回不大于x的最大整数;向下取整;ceil:返回不小于x的最大整数;向上取整。示例代码: print(math. 阅读全文
posted @ 2016-11-04 17:57 Ring_1992 阅读(1450) 评论(0) 推荐(0) 编辑
摘要:【简单说说Lua中的面向对象】 Lua中的table就是一种对象,看以下一段简单的代码: 上述代码会输出tb1 ~= tb2。说明两个具有相同值得对象是两个不同的对象,同时在Lua中table是引用类型的。我在《Lua中的模块与包》中也总结了,我们是基于table来实现的模块,在table中可以定义 阅读全文
posted @ 2016-11-04 10:24 Ring_1992 阅读(1844) 评论(0) 推荐(2) 编辑
摘要:【前言】 从Lua5.1版本开始,就对模块和包添加了新的支持,可是使用require和module来定义和使用模块和包。require用于使用模块,module用于创建模块。简单的说,一个模块就是一个程序库,可以通过require来加载。然后便得到了一个全局变量,表示一个table。这个table就 阅读全文
posted @ 2016-11-03 14:06 Ring_1992 阅读(1123) 评论(0) 推荐(0) 编辑
摘要:【前言】 Lua将其所有的全局变量保存在一个常规的table中,这个table称为“环境”。这种组织结构的优点在于,其一,不需要再为全局变量创造一种新的数据结构,因此简化了Lua的内部实现;另一个优点是,可以像其他table一样操作这个table。为了便于实施这种操作,Lua将环境table自身保存 阅读全文
posted @ 2016-11-02 15:40 Ring_1992 阅读(600) 评论(0) 推荐(0) 编辑
摘要:【前言】 元表对应的英文是metatable,元方法是metamethod。我们都知道,在C++中,两个类是无法直接相加的,但是,如果你重载了“+”符号,就可以进行类的加法运算。在Lua中也有这个道理,两个table类型的变量,你是无法直接进行“+”操作的,如果你定义了一个指定的函数,就可以进行了。 阅读全文
posted @ 2016-11-01 17:37 Ring_1992 阅读(3450) 评论(0) 推荐(0) 编辑
摘要:【具有默认值的table】 我们都知道,table中的任何字段的默认值都是nil,但是通过元表,我们可以很容易的修改这一规定,代码如下: 可以看到,在代码中,setDefault函数为所有需要默认值的table创建了一个新的元表。如果准备创建很多需要默认值得table,这种方法的开销或许就比较大了。 阅读全文
posted @ 2016-11-01 14:33 Ring_1992 阅读(5240) 评论(1) 推荐(0) 编辑

点击右上角即可分享
微信分享提示