Lua简介
Lua是一种开源、简单易学、轻量小巧的脚本语言,用标准C语言编写。
其设计的目的就是为了嵌入应用程序中,从而为应用程序提供灵活的扩展和定制功能。
Redis从2.6版本开始支持Lua脚本,Redis使用Lua可以:
- 原子操作。Redis会将整个脚本作为一个整体执行,不会被中断。可以用来批量更新、批量插入
- 减少网络开销。多个Redis操作合并为一个脚本,减少网络时延
- 代码复用。客户端发送的脚本可以存储在Redis中,其他客户端可以根据脚本的id调用。
入门
安装
Linux安装Lua :
curl -R -O http://www.lua.org/ftp/lua-5.3.0.tar.gz
tar zxf lua-5.3.0.tar.gz
cd lua-5.3.0
make linux test
make install
第一个lua脚本
编写Hello.lua
文件:
print('hello world')
执行命令:
lua Hello.lua
基本语法
Lua
提供交互式编程,可以在命令行中输入命令并立即查看结果。
Lua
脚本也可以保存在一个以lua
为结尾的文件,并执行。
Lua
注释的符号是两个减号 :
-- 这是一行注释
--[[
这是多行注释
--]]
print('这是一行代码')
Lua
的关键字 :
and | break | do | else |
elseif | end | false | for |
function | if | in | local |
nil | not | or | repeat |
return | then | true | until |
while | goto |
Lua
中的变量总是全局的。
数据类型
Lua
有八个基本类型:
数据类型 | 描述 |
---|---|
nil | 这个最简单,只有值nil属于该类,表示一个无效值(在条件表达式中相当于false)。 |
boolean | 包含两个值:false和true。 |
number | 表示双精度类型的实浮点数 |
string | 字符串由一对双引号或单引号来表示 |
function | 由 C 或 Lua 编写的函数 |
userdata | 表示任意存储在变量中的C数据结构 |
thread | 表示执行的独立线路,用于执行协同程序 |
table | Lua 中的表(table)其实是一个"关联数组"(associative arrays),数组的索引可以是数字、字符串或表类型。在 Lua 里,table 的创建是通过"构造表达式"来完成,最简单构造表达式是{},用来创建一个空表。 |
-
nil
print(a)
a
是未初始化的,打印a
就会输入nil值。 -
boolean
boolean
类型有两个值:true
和false
。Lua
也会把nil
当成false
值,但false
不等于nil
。与C语言不一样,0
在Lua
中是true
print(a == nil) -- true print(false