概念:
Lua 是一种轻量小巧的脚本语言,用标准C语言编写并以源代码形式开放, 其设计目的是为了嵌入应用程序中,从而为应用程序提供灵活的扩展和定制功能。
特性:
1、支持面向过程(procedure-oriented)编程和函数式编程(functional programming);
2、自动内存管理;只提供了一种通用类型的表(table),用它可以实现数组,哈希
表,集合,对象;
3、语言内置模式匹配;闭包(closure);函数也可以看做一个值;提供多线程(协同进
程,并非操作系统所支持的线程)支持;
4、通过闭包和table可以很方便地支持面向对象编程所需要的一些关键机制,比如数据
抽象,虚函数,继承和重载等。
应用场景:
游戏开发
独立应用脚本
Web 应用脚本
扩展和数据库插件如:MySQL Proxy 和 MySQL WorkBench
安全系统,如入侵检测系统
redis中嵌套调用实现类似事务的功能
web容器中应用处理一些过滤 缓存等等的逻辑,例如nginx。
lua的安装
yum install ‐y gcc
yum install libtermcap‐devel ncurses‐devel libevent‐devel readline‐devel
curl ‐R ‐O http://www.lua.org/ftp/lua‐5.3.5.tar.gz
tar ‐zxf lua‐5.3.5.tar.gz
cd lua‐5.3.5
make linux test
make install
创建helloworld.lua文件
print("helloworld");
保存 执行命令
lua helloworld.lua
注释:
单行注释:两个减号 --
多行注释:
‐‐[[
多行注释
多行注释
‐‐]]
关键字:
and break do else else if end false
for function if in local nil not
or repeat return then true until while
数据类型:
数据类型 描述
nil 这个最简单,只有值nil属于该类,表示一个无效值(在条件表达式中相当于false)。
boolean 包含两个值:false和true。
number 表示双精度类型的实浮点数
string 字符串由一对双引号或单引号来表示
function 由 C 或 Lua 编写的函数
userdata 表示任意存储在变量中的C数据结构
thread 表示执行的独立线路,用于执行协同程序
table Lua 中的表(table)其实是一个"关联数组"(associative arrays), 数组的索引可以是数字、字符串或表类型。在 Lua 里,table 的创建是通过"构造表达式"来完成,最简单构造表达式是{},用来创建一个空表。
流程控制:
‐‐[ 0 为 true ]
if(0) then
print("0 为 true")
else
print("0 不为true")
end
函数:
‐‐[[ 函数返回两个值的最大值 ‐‐]]
function max(num1, num2)
if (num1 > num2) then
result = num1;
else
result = num2;
end
return result;
end
‐‐ 调用函数
print("两值比较最大值为 ",max(10,4))
print("两值比较最大值为 ",max(5,6))
require 函数:
require 用于 引入其他的模块,类似于java中的类要引用别的类的效果。
require "<模块名>"