lua脚本语⾔
1 Lua介绍
1.1 lua是什么
Lua 是⼀个⼩巧的脚本语⾔。它是巴西⾥约热内卢天主教⼤学(Pontifical Catholic University of Rio de Janeiro)⾥的⼀个由Roberto Ierusalimschy、Waldemar Celes 和 Luiz Henrique de Figueiredo三⼈所组成的研究⼩组于1993年开发的。其设计⽬的是为了通过灵活嵌⼊应⽤程序中从⽽为应⽤程序提供灵活的扩展和定制功能。Lua由标准C编写⽽成,⼏乎在所有操作系统和平台上都可以编译,运⾏。Lua并没有提供强⼤的库,这是由它的定位决定的。所以Lua不适合作为开发独⽴应⽤程序的语⾔。Lua 有⼀个同时进⾏的JIT项⽬,提供在特定平台上的即时编译功能。
简单来说:
Lua 是⼀种轻量⼩巧的脚本语⾔,⽤标准C语⾔编写并以源代码形式开放,其设计⽬的是为了嵌⼊应⽤程序中,从⽽为应⽤程序提供灵活的扩展和定制功能。
lua 语⾔具有以下特性
⽀持⾯向过程(procedure-oriented)编程和函数式编程(functional programming);
⾃动内存管理;只提供了⼀种通⽤类型的表(table),⽤它可以实现数组,哈希表,集合,对象;
语⾔内置模式匹配;闭包(closure);函数也可以看做⼀个值;提供多线程(协同进程,并⾮操作系统所⽀持的线程)⽀持;
通过闭包和table可以很⽅便地⽀持⾯向对象编程所需要的⼀些关键机制,⽐如数据抽象,虚函数,继承和重载等。
应⽤场景
游戏开发
独⽴应⽤脚本
Web 应⽤脚本
扩展和数据库插件如:MySQL Proxy 和 MySQL WorkBench
安全系统,如⼊侵检测系统
redis中嵌套调⽤实现类似事务的功能
web容器中应⽤处理⼀些过滤缓存等等的逻辑,例如nginx。
1.2 lua的安装
有linux版本的安装也有mac版本的安装。。我们采⽤linux版本的安装,⾸先我们准备⼀个linux虚拟机。
安装步骤,在linux系统中执⾏下⾯的命令。
yum install -y gcc
yum install libtermcap-devel ncurses-devel libevent-devel readline-devel
curl -R -O /ftp/lua-5.3.
tar -zxf lua-5.3.
cd lua-5.3.5
make linux test
make install
1.3 快速⼊门
创建hello.lua⽂件,内容为
print("hello");
保存。执⾏命令
lua helloworld.lua
输出为:
Hello
1.4 LUA的基本语法
lua有交互式编程和脚本式编程。
交互式编程就是直接输⼊语法,就能执⾏。
脚本式编程需要编写脚本⽂件,然后再执⾏。
⼀般采⽤脚本式编程。(例如:编写⼀个hello.lua的⽂件,输⼊⽂件内容,并执⾏lua hell.lua即可)lua字符串转数组
1.4.1 注释
单⾏注释:两个减号是单⾏注释:
--
多⾏注释:
--[[
多⾏注释
多⾏注释
--]]
1.4.2 关键字
关键字就好⽐java中的 break if else等等⼀样的效果。lua的关键字如下:
and break do else
elseif end false for
function if in local
nil not or repeat
return then true until
while
nil声明当前⼀个变量的值是⽆效值
1.4.3 定义变量
全局变量,默认的情况下,定义⼀个变量都是全局变量,
如果要⽤局部变量需要声明为local.例如:
-- 全局变量赋值
a=1
-- 局部变量赋值
local b=2
如果变量没有初始化:则它的值为nil 这和java中的null不同。
1.4.4 Lua中的数据类型
Lua 是动态类型语⾔,变量不要类型定义,只需要为变量赋值。值可以存储在变量中,作为参数传递或结果返回。Lua 中有 8 个基本类型分别为:nil、boolean、number、string、userdata、function、thread 和 table。
数据类
型
描述
nil这个最简单,只有值nil属于该类,表⽰⼀个⽆效值(在条件表达式中相当于false)。
boolean包含两个值:false和true。
number表⽰双精度类型的实浮点数
string字符串由⼀对双引号或单引号来表⽰
function由 C 或 Lua 编写的函数
userdata表⽰任意存储在变量中的C数据结构
thread表⽰执⾏的独⽴线路,⽤于执⾏协同程序
table Lua 中的表(table)其实是⼀个"关联数组"(associative arrays),数组的索引可以是数字、字符串或表类型。在 Lua ⾥,table 的创建是通过"构造表达式"来完成,最简单构造表达式是{},⽤来创建⼀个空表。
1.4.5 流程控制如下:类似于if else
--[ 0 为 true ]
if(0) then
print("0 为 true")
else
print("0 不为true")
end
1.4.6 函数
lua中也可以定义函数,类似于java中的⽅法。例如:
--[[ 函数返回两个值的最⼤值 --]]
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))
执⾏之后的结果:
两值⽐较最⼤值为 10
两值⽐较最⼤值为 6
1.4.7 require 函数
require ⽤于引⼊其他的模块,类似于java中的类要引⽤别的类的效果。⽤法:
require "<;模块名>"
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论