Skip to content

概述

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特性

  • 轻量级与高效

​Lua的编译器和虚拟机设计得非常紧凑,占用的内存和CPU资源很少。这使得Lua成为嵌入到大型应用程序中的理想选择,而不会对 宿主程序的性能产生显著影响。

  • 动态类型

​Lua 是动态类型语言,变量不需要事先声明类型,变量的类型在运行时由赋值给它的值决定。这种灵活性简化了代码编写。

  • 简洁的语法

​Lua 的语法简洁明了,易于学习和使用,同时支持面向过程编程、面向对象编程(通过扩展库实现)和函数式编程等多种编程范式。

  • 灵活的表(Table)数据结构

​Lua使用表作为其核心数据结构,表既可以作为数组使用(索引从1开始),也可以作为字典(哈希表)使用,通过键值对来存储数据。这种灵活性使得Lua能够轻松地处理复杂的数据结构。

  • 可扩展性

​Lua提供了C API,允许Lua脚本与C语言编写的程序进行交互。这意味着开发者可以使用C语言来扩展Lua的功能,调用C语言编写的库函数,实现更强大的能力。

  • 协程(Coroutine)支持

​Lua内置了对协程的支持,这使得Lua在处理并发任务时更加灵活和高效。协程允许程序在多个任务之间切换,而不会像多线程那样需要复杂的同步和互斥机制。

为什么需要Lua?

Orapis分为设计端(orapis-design)和引擎端(orapis-engine)。使用Orapis生产一个接口服务,需要先在设计端设计、打包,再发布到引擎端,才可以正常提供接口服务。

  • orapis-engine

​引擎端底层基于OpenRestyOpenResty是一个基于Nginx与Lua的高性能Web平台。接口服务在引擎端最终是以Lua脚本的形式提供服务,了解Lua语言能使您更清晰引擎端的实现逻辑。

  • orapis-design

​设计端的设计内容基于Lua语言,在设计端打包接口服务实则是将设计内容打包成Lua脚本。设计接口时定义和使用的所有变量底层都是Lua语言变量,部分设计内容涉及Lua语言的基本语法知识,所以设计接口服务需要具备Lua语言基础。

​另外,如果存在无法通过现有提供的控件满足设计要求的功能,可以通过编写Lua脚本来实现。