Lua 是一个基于 MIT 开源协议、小巧、动态类型的可嵌入式脚本语言,该语言的设计目的是为了嵌入其他应用程序中并提供灵活的扩展和定制功能。在经过4个RC版本后,Lua终于迎来了5.3正式版,该版本主要实现了对整数、位操作、UTF-8 的支持以及打包和解包的功能。另外,Lua 5.3还在语言、功能库、C语言相关API等方面带来了如下改进:
Lua的基本类型userdata能够被赋予任何Lua支持的值;新增整数除法;为一些元方法新增了更加灵活的规则。
改进了迭代器ipairs和table库对元方法的支持;为string.dump增加了截断选项;为table库新增了元方法;新增table.move、string.pack、string.unpack、string.packsize等函数。
增加了访问C语言中的continuation函数的API;lua_gettable 和类型函数能够返回结果值的类型;为lua_dump增加了截断选项;新增了lua_geti、lua_seti、lua_isyieldable、lua_numbertointeger、lua_rotate、lua_stringtonumber等函数。
Lua的解释器可以用作计算器,且无需前缀‘=’;所有的代码都已支持参数列表。
Lua 5.3正式版现已提供 下载 ,更多有关该版本的信息参见官方发布的 ChangeLog 。另外,Lua最著名的案例是暴雪公司在其网络游戏《魔兽世界》中的应用,目前非常流行的手游《愤怒的小鸟》也是用Lua编写的。
Lua 5.3正式版发布后, Hacker News 上就有了 相关讨论 。用户 sitkack 提出了Lua的两个第三方UTF-8 lib库: luautf8 和 utf8.lua ;用户 justincormack 认为Lua对整数的支持是一个巨大的改进。
用户 fit2rule 评论 到:
这真是一个好消息,自己一直期待着将Lua应用到移动平台 MOAI 的最新客户端中,但是Lua对UTF-8支持的缺失一直影响着项目的进展,Lua 5.3对UTF-8的支持意味着其功能更加强大和完整。
Reddit 上也有了 相关评论 ,用户 ladna 认为:
Lua 5.3实现对整数、UTF-8和位操作的支持是一个巨大的改进。
用户 feydius 评论到:
真是太好了,Lua 5.3对64位整数的默认支持和对位操作的支持(5.3前是通过分割函数来实现)真是一个巨大的改进。垃圾收集器的进展现在是什么情况了?是否已经能够使用了。
感谢郭蕾对本文的审校。
给InfoQ中文站投稿或者参与内容翻译工作,请邮件至editors@cn.infoq.com。也欢迎大家通过新浪微博(@InfoQ)或者腾讯微博(@InfoQ)关注我们,并与我们的编辑和其他读者朋友交流。