1.LUA介绍
LUA是一种可扩展的程序设计语言,它被设计成支持一般数据描述工具的处理程序,它对面向对象編程,函数式編程,数据驱动编程也提供了很好的支持。LUA希望能够为一种功能强大的,轻量型的,可嵌入的脚本语言,以便供任何程序使用。LUA的实现库 依赖于用纯C,通用的标准C/C++子集。
作为一种可扩展的程序设计语言,LUA并没有MAIN程序的概念,它只是嵌入于宿主程序当中使用。主机程序调用方法去执行一段LUA,可以读写LUA变量,可以注册被LUA调用的C函数。尽管采用了C函数,LUA可以被增强以应对各种各样的不同领域。因此可以创建自定义的程序语言,共享同一个语法框架。LUA发布包里包含一个样本主机程序,叫LUA(解释器)。它利用LUA库提供一个完整,独立的解释器,用于交互式或批量使用。
Lua is an extension programming language designed to support general procedural programming with data description facilities.It also offers good support for object-oriented programming,functional programming, and data-driven programming.Lua
is intended to be used as a powerful, lightweight,embeddable scripting language for any program that needs one.Lua is implemented as a library, written inclean C,the common subset of StandardC and C++.
Being an extension language, Lua has no notion of a "main" program:it only worksembedded in a host client,called theembedding program or simply thehost.The host program can invoke functions to execute a piece of Lua
code,can write and read Lua variables,and can register Cfunctions to be called by Lua code.Through the use of Cfunctions, Lua can be augmented to cope with a wide range of different domains,thus creating customized programming languages sharing a syntactical
framework.The Lua distribution includes a sample host program calledlua
,which uses the Lua library to offer a complete, standalone Lua interpreter,for interactive or batch use.
2。Linux下LUA的编绎安装
2.1下载:
在http://www.lua.org/download.html下载LUA源码。目前最新版本是5.2.1 (lua-5.2.1.tar.gz)
2.2编译(terminal 操作)
首先确保存你机上安装了libreadline-dev包,如果没有安装,先安装
命令:sudo apt-cache search libreadline-dev 查找
sudo apt-get install libreadline-dev 安装
然后再进行编译操作(假设解压目录为/home/aven/下)
移动: mv
lua-5.2.1.tar.gz /home/aven/
解压: lua-5.2.1.tar.gz,tar -zxvflua-5.2.1.tar.gz
进到lua-5.2.1目录下,make后,显示该版本支付的OS平台,由于我的平台是UBUNTU,所以选择LINUX平台,输入make linux,执行完毕后,LUA就编译安装了。
3.LUA相关术语/基本概念
3.1 LUA脚本的调用执行方式
a. lua xxx.lua 加载lua文件,lua文件内可以是多条语句,和自定义函数的命令集合,多条语句间可以用空白格隔开,也可以用分号
b. 直接运行lua解释器,进入到交互模式,输入lua脚本代码,也可以在交互模式下采用dofile('xxx.lua'),导入源文件,假设xxx.lua里定义了fuck函数,那么通过dofile后,在交互下可以调用fuck函数。(交互模式下的退出方式 os.exit()或都CTRL+D)
3.2 程序块
如上所述(as stated above),一个lua源文件,或者交互模式下一行代码,都被称为一个chunk程序块.程序块内,如果有多条语句,语句与语句之间可以用空白格隔开,也可以用分号隔开,一行可以输入多条语句,可用空白,或分号隔开。
3.3 lua解释器的常用参数选项wjxv
lua -e "xxx lua code" 将脚本代码直接用lua解释器执行
lua -i 表示进入到交互模式
lua -l fuck 表示在指定路径下查找并加载fuck库文件
3.4 lua 参数arg table
lua -i script a b c
[-2] [-1] [0] [1] [2] [3]
lua解释器在执行前,会用所有命令行参数创建一个名为 arg的table,script的索引始终为0。
eg.
lua -i -l a -l b -e "print('hello word')"
先加载a,再加载b,再执行打印,最后进入交互模式
4.词法
a.标识符命名,数字字母下划线构成,不能以数字开头,(以_开头时,最好不要以_+大字母命令,因为LUA有一些内置的就是以这种形式命名的,如_PROMPT,_ENV,怕与之冲突)
b.区别大小写
c.不能以内置保留字作标识符
5.注释
行注释 --
块注释 ---[[(去掉一个‘-’,块注释便不起作用)
--]]
6.全局变量不需要声明,只要将该变量置非nil值即可,如果要删除该全局变量,只需要将其值置为nill即可。(后面将讲到8种基本数据类型时,再谈nil)
---------------------------------------------------------------------------------------------
分享到:
相关推荐
而lua-resty-template和大多数模板引擎是类似的,大体内容有: 模板位置:从哪里查找模板; 变量输出/转义:变量值输出; 代码片段:执行代码片段,完成如if/else、for等复杂逻辑,调用对象函数/方法; 注释:解释...
lua-nginx-module-0.10.13
安装nginx_lua模块时候需要先安装nginx的依赖包,安装命令rpm -ivh lua-devel-5.1.4-4.1.el6.x86_64.rpm
lua-resty-core, 新的基于 lua Nginx 模块的API 电子邮件名称lua-resty-core - 用于ngx_http_lua_module和/或者ngx_stream_lua_module的基于new的Lua table-内容名称状态概要说明描述先决条件API实现了r
lua-nginx-module-master,nginx编译lua模块必需文件lua-nginx-module
lua-resty-redis-connector-master lua-resty的redis库 lua-resty的redis库
LUA程序设计教程LUA程序设计教程LUA程序设计教程LUA程序设计教程LUA程序设计教程LUA程序设计教程LUA程序设计教程LUA程序设计教程LUA程序设计教程LUA程序设计教程LUA程序设计教程LUA程序设计教程LUA程序设计教程
EmmyLua-AttachDebugger-1.0.0.4 最新intellij 断点调试
lua中的json模块,用于解析json字符串
LUA-cjson已经编译 LUA-cjson已经编译 LUA-cjson已经编译 LUA-cjson已经编译 LUA-cjson已经编译 LUA-cjson已经编译
lua-nginx-module-0.10.22.tar.gz # 0.10.16 以后都需要 lua-resty-core和lua-resty-lrucache lua-resty-core-0.1.24.tar.gz [lua-nginx-module依赖] lua-resty-lrucache-0.12.tar ngx_devel_kit-0.3.2.tar.gz nginx...
安装lua-language-server 可以用于nvim中lua代码自动补全 使用方法可参考文章: https://blog.csdn.net/lxyoucan/article/details/120292520
OpenResty 是一个强大的 Web 应用服务器,Web 开发人员可以使用 Lua 脚本语言调动 Nginx 支持的各种 C 以及 Lua 模块,更主要的是在性能方面,OpenResty可以 快速构造出足以胜任 10K 以上并发连接响应的超高性能 Web ...
lua-upstream-nginx-module, Nginx C 模块将Lua向ngx_lua公开,用于 Nginx upstreams 电子邮件名称ngx_http_lua_upstream - Nginx MODULE,用于向 Nginx upstreams公开Lua到 ngx_lua目录NAME状态概要说明函数get_...
lua-resty-validation, 用于Lua和OpenResty的验证库( 输入验证和筛选) lua-resty-validationlua-resty-validation 是用于Lua和OpenResty的可以扩展链接验证和过滤库。带lua-resty-validation的 Hello Worldlocal val
Binary Package lua-devel-5.1.4-4.1.el6.x86_64.rpm Source Package lua-5.1.4-4.1.el6.src.rpm Install HowtoInstall the lua-devel rpm package: ..
离线安装包,亲测可用
lua-resty-mongol-master已编译,直接放在window/linux相应的openresty下的resty目录即可
lua-5.1中文手册.chm Lua程序设计.chm