1.who?
Lua 是一种轻量小巧的脚本语言,用标准C语言编写并以源代码形式开放, 其设计目的是为了嵌入应用程序中,从而为应用程序提供灵活的扩展和定制功能。
Lua 是巴西里约热内卢天主教大学(Pontifical Catholic University of Rio de Janeiro)里的一个研究小组于 1993 年开发的,该小组成员有:Roberto Ierusalimschy、Waldemar Celes 和 Luiz Henrique de Figueiredo。
2.why?
其设计目的是为了嵌入应用程序中,从而为应用程序提供灵活的扩展和定制功能。
Redis 在 2.6 版本中推出了脚本功能,允许开发者将 Lua 语言编写的脚本传到 Redis 中执行。使用 Lua 脚本的优点有如下几点:
- 减少网络开销:本来需要多次请求的操作,可以一次请求完成,从而节约网络开销;
- 原子操作:Redis 会将整个脚本作为一个整体执行,中间不会执行其它命令;
- 复用:客户端发送的脚本会存储在 Redis 中,从而实现脚本的复用。
3.what?
轻量级: 它用标准C语言编写并以源代码形式开放,编译后仅仅一百余K,可以很方便的嵌入别的程序里。
可扩展: Lua提供了非常易于使用的扩展接口和机制:由宿主语言(通常是C或C++)提供这些功能,Lua可以使用它们,就像是本来就内置的功能一样。
其它特性:
支持面向过程(procedure-oriented)编程和函数式编程(functional programming);
自动内存管理;只提供了一种通用类型的表(table),用它可以实现数组,哈希表,集合,对象;
语言内置模式匹配;闭包(closure);函数也可以看做一个值;提供多线程(协同进程,并非操作系统所支持的线程)支持;
通过闭包和table可以很方便地支持面向对象编程所需要的一些关键机制,比如数据抽象,虚函数,继承和重载等。
4.where?
游戏开发
独立应用脚本
Web 应用脚本
扩展和数据库插件如:MySQL Proxy 和 MySQL WorkBench
安全系统,如入侵检测系统
5.编写之前
IDE
EmmyLua插件
https:///EmmyLua/IntelliJ-EmmyLua https://emmylua.github.io/zh_CN/
LDT 基于eclipse
https://www.eclipse.org/ldt/
6.开始
1.print(“hello world!”)
2.关键字:andbreakdoelseelseifendfalseforfunction ifinlocalnilnotorrepeatreturnthentrueuntilwhile3.注释: – 行注解 --[[ 块注解 --]]
4.变量类型:
数字:Lua的数字只有double型,64bits
字符串:可以用单引号,也可以用双引号也可以使用转义字符‘\n’ (换行), ‘\r’ (回车), ‘\t’ (横向制表), ‘\v’ (纵向制表), ‘\’ (反斜杠), ‘\”‘ (双引号), 以及 ‘\” (单引号)等等。
空值:C语言中的NULL在Lua中是nil,比如你访问一个没有声明过的变量,就是nil
布尔类型:只有nil和false是 false,数字0,‘’空字符串(’\0’)都是true
作用域:lua中的变量如果没有特殊说明,全是全局变量,那怕是语句块或是函数里。
变量前加local关键字的是局部变量。
7.控制语句
















