加载中...
巴西PUC-Rio大学1993年开发的轻量级脚本语言,以极小的体积(核心库约200KB)和易嵌入性著称。《魔兽世界》《愤怒的小鸟》《CS:GO》等游戏都用Lua作为脚本引擎,nginx的OpenResty扩展也基于Lua。

| 类型 | 动态类型、解释型、轻量级 |
| 发布年份 | 1993年 |
| 开发者 | Roberto Ierusalimschy等(PUC-Rio) |
Lua(葡萄牙语意为「月亮」)的核心设计目标从来不是做通用编程语言,而是作为宿主语言的扩展层嵌入到C/C++程序里。整个解释器可以编译进约200KB的二进制,C API设计简洁,把Lua虚拟机嵌进已有程序只需几十行C代码。
这让游戏引擎非常喜欢它:游戏逻辑用Lua写,引擎核心用C++写,设计师和关卡策划可以修改Lua脚本而不用重新编译整个游戏。《魔兽世界》的UI插件系统几乎全是Lua;Roblox的脚本语言是基于Lua的Luau变体。[1]
Lua只有一种复合数据结构:table。它既是数组、又是字典、又是对象——通过table和元表(metatable)可以模拟出面向对象继承、运算符重载等所有高级特性。这种极简主义让语言核心极小,但也意味着初学者需要理解table的双重角色。
LuaJIT是Lua的即时编译实现,在特定场景下性能可以接近C,被大量用于需要高性能动态脚本的场合。OpenResty把LuaJIT嵌入nginx,让配置层可以写任意复杂的业务逻辑,是国内很多CDN和API网关的技术基础。

| 类型 | 动态类型、解释型、轻量级 |
| 发布年份 | 1993年 |
| 开发者 | Roberto Ierusalimschy等(PUC-Rio) |
登录 后参与讨论
暂无讨论,来发表第一条评论吧