c语言没有自带字符串类型,这导致有非常多的用c写的软件都自己实现一个处理字符串的类型。
一般来说,要表示一个字符串,核心就是以下两个数据:

  • 字符串长度
  • 指向存放字符串内存数据的指针

Lua自己的字符串类型的实现也没有绕过这两个核心内容。

阅读全文 »

table实现了关联数组,即可以同时用数字和字符串索引的数组。
table是一种强大的语言构造。因为table的泛型特点,简化了使用lua编写程序所用的数据结构和算法。

阅读全文 »

对于内存的管理,是程序在应用的时候的必需知识点。而lua的垃圾回收机制十分优秀,值得一读。

阅读全文 »

Lua的虚拟机核心部分,没有任何的系统调用,是一个纯粹的黑盒子,正确的使用Lua,不会对系统造成任何干扰。这其中最关键的一点是,Lua让用户自行定义内存管理器,在创建Lua虚拟机时传入,这保证了Lua的整个运行状态是用户可控的。

阅读全文 »

Lua是动态类型语言,变量不要类型定义,只需要为变量赋值。 值可以存储在变量中,作为参数传递或结果返回。

阅读全文 »

lua中提供的元表(metatable)与元方法(metamethod)是一种非常重要的语法,metatable主要用于做一些类似于C++重载操作符式的功能。元表与元方法会影响table的访问行为。

阅读全文 »

当运行的程序出现问题时,我们通常通过调试来追踪和定位问题。但是,当运行错误的机器上没有调试工具,我们就需要实现远程调试。简单地说,就是要调试的程序和调试器不在一台机器上。

阅读全文 »