设计目的:是为了嵌入应用程序中,从而为应用程序提供灵活的扩展和定制功能。
Lua的特性:
轻量级:它用标准C语言编写并以源代码形式开放,编译后仅仅一百余K,可以很方便的嵌入到别的程序里。
可扩展:Lua提供了非常易于使用的扩展接口和机制:由宿主语言(通常是C或C++)提供这些功能,Lua可以使用它们,就像是本来内置的功能一样。
其他特性:
支持面向过程编程和函数式编程;
自定内存管理;只是提供了一种通类型的表(table),用它可以实现数组,哈希表,集合,对象
语言内置模式匹配;闭包(closure);函数也可以看做是一个值(Lua中的函数是其的一种数据类型);提供多线程(协同进程,并非操作系统支持的线程)支持;
通过闭包和table可以很方便的支持面向对象编程所需的一些关键机制,比如数据抽象,虚函数,继承和重载等。
Lua应用场景
——游戏开发
——独立应用脚本
——Web应用脚本
——扩展和数据库插件:MySQL PRoxy 和MySQL WorkBench
——安全系统,如入侵检测系统
先在大多数的应用Lua的是游戏开发,轻量,热更,方便游戏客户端的开发和维护