不灭的焱

革命尚未成功,同志仍须努力

作者:php-note.com  发布于:2019-03-30 23:25  分类:OpenResty_Lua  编辑

table 库是由一些辅助函数构成的,这些函数将 table 作为数组来操作。

作者:php-note.com  发布于:2019-03-30 23:18  分类:OpenResty_Lua  编辑

Lua 字符串库包含很多强大的字符操作函数。字符串库中的所有函数都导出在模块 string 中。在 Lua 5.1 中,它还将这些函数导出作为 string 类型的方法。这样假设要返回一个字符串转的大写形式,可以写成 ans = string.upper(s) , 也能写成 ans = s:upper()。为了避免与之前版本不兼容,此处使用前者。

作者:php-note.com  发布于:2019-03-30 23:12  分类:OpenResty_Lua  编辑

从 Lua 5.1 语言添加了对模块和包的支持。一个 Lua 模块的数据结构是用一个 Lua 值(通常是一个 Lua 表或者 Lua 函数)。一个 Lua 模块代码就是一个会返回这个 Lua 值的代码块。

作者:php-note.com  发布于:2019-03-30 23:09  分类:OpenResty_Lua  编辑

调用回调函数,并把一个数组参数作为回调函数的参数。

local args = {...} or {}
method_name(unpack(args, 1, table.maxn(args)))
作者:php-note.com  发布于:2019-03-30 23:04  分类:OpenResty_Lua  编辑

Lua 具有一项与众不同的特性,允许函数返回多个值。Lua 的库函数中,有一些就是返回多个值

作者:php-note.com  发布于:2019-03-30 23:00  分类:OpenResty_Lua  编辑

Lua 函数的参数大部分是按值传递的。值传递就是调用函数时,实参把它的值通过赋值运算传递给形参,然后形参的改变和实参就没有关系了。在这个过程中,实参是通过它在参数表中的位置与形参匹配起来的。

作者:php-note.com  发布于:2019-03-30 22:56  分类:OpenResty_Lua  编辑

Lua 使用关键字 function 定义函数,语法如下:

function function_name (arc)  -- arc 表示参数列表,函数的参数列表可以为空
   -- body
end
作者:php-note.com  发布于:2019-03-30 22:52  分类:OpenResty_Lua  编辑

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

作者:php-note.com  发布于:2019-03-30 22:49  分类:OpenResty_Lua  编辑

语句 break 用来终止 while、repeat 和 for 三种循环的执行,并跳出当前循环体, 继续执行当前循环之后的语句。

作者:php-note.com  发布于:2019-03-30 22:37  分类:OpenResty_Lua  编辑

数字型 for 的语法如下:

for var = begin, finish, step do
    --body
end
作者:php-note.com  发布于:2019-03-30 22:32  分类:OpenResty_Lua  编辑

Lua 中的 repeat 控制结构类似于其他语言(如:C++ 语言)中的 do-while,但是控制方式是刚好相反的。简单点说,执行 repeat 循环体后,直到 until 的条件为真时才结束,而其他语言(如:C++ 语言)的 do-while 则是当条件为假时就结束循环。

作者:php-note.com  发布于:2019-03-30 22:25  分类:OpenResty_Lua  编辑

Lua 跟其他常见语言一样,提供了 while 控制结构,语法上也没有什么特别的。但是没有提供 do-while 型的控制结构,但是提供了功能相当的 repeat。

while 型控制结构语法如下,当表达式值为假(即 false 或 nil)时结束循环。也可以使用 break 语言提前跳出循环。

while 表达式 do
    --body
end
作者:php-note.com  发布于:2019-03-30 22:22  分类:OpenResty_Lua  编辑

单个 if 分支 型

x = 10
if x > 0 then
    print("x is a positive number")
end
作者:php-note.com  发布于:2019-03-30 22:19  分类:OpenResty_Lua  编辑

流程控制语句对于程序设计来说特别重要,它可以用于设定程序的逻辑结构。一般需要与条件判断语句结合使用。Lua 语言提供的控制结构有 ifwhilerepeatfor,并提供 break 关键字来满足更丰富的需求。本章主要介绍 Lua 语言的控制结构的使用。

作者:php-note.com  发布于:2019-03-30 22:09  分类:OpenResty_Lua  编辑

算术运算符、关系运算符、逻辑运算符、字符串连接、优先级

作者:php-note.com  发布于:2019-03-30 20:36  分类:OpenResty_Lua  编辑

函数 type 能够返回一个值或一个变量所属的类型。

print(type("hello world")) -->output:string
print(type(print))         -->output:function
print(type(true))          -->output:boolean
print(type(360.0))         -->output:number
print(type(nil))           -->output:nil
作者:php-note.com  发布于:2019-03-30 20:23  分类:OpenResty_Lua  编辑

在 Linux、Mac OS X 上搭建环境

到 LuaJIT 官网 http://luajit.org/download.html,查看当前最新开发版本,例如笔者写书时的最新版本:http://luajit.org/download/LuaJIT-2.1.0-beta1.tar.gz

# wget http://luajit.org/download/LuaJIT-2.1.0-beta1.tar.gz
# tar -xvf LuaJIT-2.1.0-beta1.tar.gz
# cd LuaJIT-2.1.0-beta1
# make
# sudo make install
作者:php-note.com  发布于:2019-03-30 18:55  分类:OpenResty_Lua  编辑

Lua 从一开始就是作为一门方便嵌入(其它应用程序)并可扩展的轻量级脚本语言来设计的,因此她一直遵从着简单、小巧、可移植、快速的原则,官方实现完全采用 ANSI C 编写,能以 C 程序库的形式嵌入到宿主程序中。

作者:php-note.com  发布于:2019-03-30 18:51  分类:OpenResty_Lua  编辑

Lua 是一个小巧的脚本语言。是巴西里约热内卢天主教大学(Pontifical Catholic University of Rio de Janeiro)里的一个研究小组,由 Roberto Ierusalimschy、Waldemar Celes 和 Luiz Henrique de Figueiredo 所组成并于 1993 年开发。其设计目的是为了嵌入应用程序中,从而为应用程序提供灵活的扩展和定制功能。