随笔分类 - 读书笔记
摘要:日期:2014.8.14PartⅣ The C API31 Threads and States Lua实际上是不支持真正的多线程的,即preemptive threads 共享内存的情况。有两个原因:第一个,是ANSI C不支持,所以Lua中就没有合适的方法来实现这个机制;第二个原因,最重要的是...
阅读全文
摘要:日期:2014.8.15PartⅣ The C API 32 Memory Management Lua是动态的对其数据结构进行管理的。所有数据结构按需求进行增长,最终进行释放。Lua对其内存的使用控制较为严格,当我们关闭了一个Lua state的时候,Lua会立即释放其内存占用。不仅如此,Lua...
阅读全文
摘要:日期:2014.8.12PartⅣ The C API30 Managing Resources 上一节中实现的自定义类型,我们并没有关注于资源管理的问题。上一节实现的数组是需要关心内存问题,而这些问题由Lua实现管理。但是很多时候事情不那么简单,有些对象不仅需要内存空间,还会需要如窗口句柄、文件...
阅读全文
摘要:日期:2014.8.11PartⅣ The C API29 User-Defined Types in C 在之前的例子里,已经介绍过如果通过用C写函数来扩展Lua。在本章,将会介绍通过用C写新的类型来扩展Lua,将会使用到元方法等特性来实现这个功能。 以一个例子来介绍本章将要介绍的,例子实现的...
阅读全文
摘要:日期:2014.8.8PartⅣ The C API28 Techniques for Writing C Functions官方的API和辅助库都提供了几种帮助创建C函数的机制。在这章,将会介绍数组操控,字符串操控,和在C中存储Lua变量。28.1 Array Manipulation Lua中...
阅读全文
摘要:日期:2014.8.7PartⅣ The C API27 Calling C from Lua 在这里说Lua调用C函数,并不意味着Lua可以调用任意的C函数。与之前C调用Lua函数一样,在这里同样需要遵循一些规则:传递参数,得到结果。不仅如此,Lua要调用C函数,我们首先需要注册这个函数,即需要...
阅读全文
摘要:日期:2014.8.6PartⅣ The C API26 Extending Your Application 使用Lua很重要的一点是用来做配置语言。配合主语言做一些功能的配置。26.1 The Basics 有的时候程序需要配置一些功能信息,很多时候可能有许多别的方法比用lua做配置要更简单...
阅读全文
摘要:日期:2014.8.1PartⅣ The C API25 An Overview of the C API Lua是一种嵌入式语言。这就意味着Lua不是单独存在的,而是可以通过一系列的标准库将lua的特性嵌入至其他应用模块中。 Lua以Lua interpreter(lua的解释器?)来解决了其...
阅读全文
摘要:大概是从四月中旬开始吧,突然间想学Lua了。当时考虑到的是现在很多公司对脚本语言开发人员需求比较高,朋友出去面试的时候也确实有很多公司是需要Lua开发人员。考虑的是Lua脚本开发快,更新方便。抱着提升自己的目的,便开始了Lua的学习,也就开始了看《Programming in Lua》,当时想搞程...
阅读全文
摘要:日期:2014.7.29PartⅢ The Standard Libraries24 The Debug LibraryLua的debug库并不是提供一个调试器,而是提供一些供你写调试器的一些操作。Lua实现这些功能是以C API来实现的,因此这个库相当于提供使用Lua代码访问C API,这是从性能...
阅读全文
摘要:日期:2014.7.29PartⅢ The Standard Libraries23 The Operating System Library提供一些基础的如文件管理,获取数据和时间,及一些其他与操作系统相关联的特性。但是诸如路径管理、网络等功能通过其他的库提供支持。在文件操作部分,OS库提供了os...
阅读全文
摘要:日期:2014.7.28PartⅢ The Standard Libraries22 The I/O Library Lua的I/O库提供了两种不同的文件处理模式。简单模式以I/O操作是基于当前的输入文件和输出文件的;而完全模式则提供了完整的文件处理方式,这种方式采用了面向对象的思想,将所有...
阅读全文
摘要:日期:2014.7.24PartⅢ The Standard Libraries21 The String LibraryLua的string标准库提供了完整的对string型变量进行操作的方法。string库将其操作函数输出为一个叫做string的模块,而从lua的5.1版本开始,也将这些函数输出...
阅读全文
摘要:日期:2014.7.23PartⅢ The Standard Libraries20 The Table Librarytable库包含一些辅助函数用以类似与数组一样操作table。提供了从list内插入和删除元素的操作,对数组的元素进行排序的操作,将table中所有的string连接起来的操作。2...
阅读全文
摘要:日期:2014.7.22PartⅢ The Standard Libraries19 The Bitwise Library位运算库lua中的位运算由于数值类型是浮点型,所以支持效果不太好。lua中利用一些位运算实现一些算法。如:左移相当于乘以2,右移相当于除以2.而对于按位与和按位或这两个概念...
阅读全文
摘要:日期:2014.7.22Programming in Lua 3 的第二部分已经看完了,现在进入第三部分:标准库的阅读PartⅢ The Standard Libraries18 The Mathematical Library标准数学库math 库包含如三角函数(sin,cos,tan),取...
阅读全文
摘要:日期:2014.7.16PartⅡ 17Weak Tables and FinalizersLua实现的是自动的内存管理。程序可以创建对象,可是没有现成的函数来实现删除对象。Lua使用 garbage collection(垃圾回收机制?)来删除变成gargage的对象,这一特性带来了很大的便利,...
阅读全文
摘要:日期:2014.7.14 PartⅡ Object-Oriented ProgrammingLua中实现面向对象编程。“如同OOP对象,table拥有状态;如同OOP对象,table拥有标识符---self,用来与其他变量做区分,而且两个table拥有同样的值也是不同的object(对象),因为s...
阅读全文
摘要:日期:2014.7.11Part Ⅱ Modules and Packages模块(module)是一些(既不是lua也不是c)能被函数require加载的代码,这些代码的作用在于创建并返回table。这个模块输出的函数、常量等都是定义在这个table中,其工作原理类似于命名空间。Lua中所有的标准...
阅读全文
摘要:这一部分应该挺重要的,Lua中唯一的数据结构便是table,几乎所有的的数据操作都是在table的基础上进行。而本文提到的元表和元方法,便是帮助table实现更强大的功能而设计的。日期:2014.7.11Part ⅡMetatables and MetamethodsLua中不能直接对table进行...
阅读全文

浙公网安备 33010602011771号