1.lua是什么
简介:Lua是一个小巧的脚本语言。它是巴西里约热内卢天主教大学里的一个三人所组成的研究小组于1993年开发的。 其设计目的是为了通过灵活嵌入应用程序中从而为应用程序提供灵活的扩展和定制功能。Lua由标准C编写而成,几乎在所有操作系统和平台上都可以编译,运行。Lua并没有提供强大的库,这是由它的定位决定的。所以Lua不适合作为开发独立应用程序的语言。Lua 有一个同时进行的JIT项目,提供在特定平台上的即时编译功能。Lua脚本可以很容易的被C/C++ 代码调用,也可以反过来调用C/C++的函数,这使得Lua在应用程序中可以被广泛应用。不仅仅作为扩展脚本,也可以作为普通的配置文件,代替XML,ini等文件格式,并且更容易理解和维护。 Lua由标准C编写而成,代码简洁优美,几乎在所有操作系统和平台上都可以编译,运行。一个完整的Lua解释器不过200k,在所有脚本引擎中,Lua的速度是最快的。
简单来说: Lua是一个小巧的脚本语言,用标准的C语言编写并以源代码的形式开放,设计目的是为了通过灵活嵌入应用程序中并为其提供灵活的扩展能力和定制功能,例如外挂脚本。
由于api有限,所以一直不愠不火,但其在嵌入式脚本中仍然为最佳选择。
2.特性
- 支持面向过程编程和函数式编程。(java为面向对象,sql语句就位为面向过程)
- 自动内存管理,只提供了一种通用类型的表(table),用它可以实现数组、哈希表、集合、对象。(java有垃圾回收机制,守护线程自动回收,C需要手动回收)
- 语言内置匹配模式:闭包(closure),函数也可以作为一个值,提供多线程(不为操作系统的进程)支持。
- 通过闭包和table可以很方便的支持面向对象编程所需要的一些关键机制,比如数据抽象,虚函数,继承和重载。(仅仅是机制,本质上还是面向过程)
3.应用场景
- 游戏开发
- 独立应用脚本
- Web应用脚本
- 扩展和数据库插件:Mysql Proxy 和 MySQL WorkBench(安装介绍地址借鉴其他博客)
- 安全检测,如入侵检测系统
- Redis中嵌套调用类似事务的功能
- web容器中应用处理一些过滤 缓存等逻辑 例如nginx