
[openresty学习之七]面向对象编程
在 Lua 中,可以使用表和函数实现面向对象。将函数和相关的数据放置于同一个表中就形成了一个对象。继承可以用元表实现,它提供了在父类中查找存在的方法和变量的机制。

[openresty学习之六]元表
元表(metadata)是Lua中独有的概念,在实际项目中的使用非常广泛。元表的表现行为类似于C++语言中的操作符重载。比如可以重载表中的add函数,来计算两个表Lua数组的并集;或者重载tostring,来定义转换为字符串的函数。

[openresty学习之五]模块
从 Lua 5.1 语言添加了对模块和包的支持。一个 Lua 模块的数据结构是用一个 Lua 值(通常是一个 Lua 表或者 Lua 函数)。一个 Lua 模块代码就是一个会返回这个 Lua 值的代码块。 可以使用内建函数 require() 来加载和缓存模块。简单的说,一个代码模块就是一个程序库,可以通过 require 来加载。模块加载后的结果通过是一个 Lua table,这个表就像是一个命名空间,其内容就是模块中导出的所有东西,比如函数和变量。require 函数会返回 Lua 模块加载后的结果,即用于表示该 Lua 模块的 Lua 值。

[openresty学习之四]函数
在 Lua 中,函数是一种对语句和表达式进行抽象的主要机制。函数既可以完成某项特定的任务,也可以只做一些计算并返回结果。在第一种情况中,一句函数调用被视为一条语句;而在第二种情况中,则将其视为一句表达式。

[openresty学习之二]Lua和LuaJIT简介
OpenResty并没有直接使用LuaJIT官方提供的版本,而是在此基础上,扩展和维护了自己的LuaJIT分支,并扩展了很多独有的额API。这些独有的API,都是在实际开发OpenResty的过程中,出于性能方面的考虑而增加的。