Lua是什么?
Lua是一种强大、高效、轻量级、可嵌入的脚本语言。它支持过程式编程、面向对象编程、函数式编程、数据驱动编程和数据描述。
Lua将简单的过程式语法与基于关联数组和可扩展语义的强大数据描述构造相结合。Lua是动态类型的,通过基于寄存器的虚拟机解释字节码来运行,并具有自动内存管理功能,通过增量垃圾收集,使其成为配置、脚本编写和快速原型设计的理想选择。
Lua来自于哪里?
Lua是由巴西里约热内卢天主教大学(Pontifical Catholic University of Rio de Janeiro,简称PUC-Rio)的一个团队设计、实现和维护的。Lua诞生并成长于Tecgraf,这是PUC-Rio的前计算机图形技术小组。现在,Lua位于PUC-Rio计算机科学系的一个实验室——LabLua。
关于名字
"Lua"(发音为LOO-ah)在葡萄牙语中意为“月亮”。因此,它既不是缩写词也不是缩写,而是一个名词。更具体地说,“Lua”是一个名字,地球卫星的名字以及这种语言的名字。像大多数名字一样,它应该以小写字母书写,首字母大写,即“Lua”。请不要将其写成“LUA”,这既难看又容易混淆,因为这样它就变成了一个缩写词,对不同的人来说有不同的含义。所以,请正确地书写“Lua”吧!
为什么选择Lua?
Lua是一种经过验证的、健壮的语言
Lua已在许多工业应用中得到使用(例如,Adobe的Photoshop Lightroom),特别强调嵌入式系统(例如,巴西数字电视的Ginga中间件)和游戏(例如,魔兽世界和愤怒的小鸟)。目前,Lua是游戏领域领先的脚本语言。Lua有一个扎实的参考手册,并且有关于它的多本书籍。自1993年创建以来,Lua的多个版本已经发布并在实际应用中使用。Lua在2007年的HOPL III,即第三届ACM SIGPLAN编程语言历史会议上有所展示。Lua在2011年获得了游戏开发者杂志的前线奖。
Lua速度快
Lua以其性能而闻名。声称“与Lua一样快”是其他脚本语言的目标。多个基准测试显示,Lua在解释型脚本语言领域中是最快的。Lua不仅在精细调整的基准程序中快,在现实生活中也很快。大型应用的很大一部分都是用Lua编写的。
如果您需要更快的速度,可以尝试LuaJIT,这是一个使用即时编译器的Lua独立实现。
Lua可移植
Lua以一个小型包的形式分发,并在所有拥有标准C编译器的平台上直接构建。Lua运行在所有Unix和Windows版本上,移动设备(运行Android、iOS、BREW、Symbian、Windows Phone),嵌入式微处理器(如ARM和Rabbit,用于Lego MindStorms等应用),IBM大型机等。
关于Lua为什么也是受限设备的好选择的具体原因,请阅读Mike Pall的总结。也可以看看Timm Müller创建的海报。
Lua可嵌入
Lua是一个快速的语言引擎,占用空间小,可以轻松嵌入到您的应用程序中。Lua有一个简单且文档齐全的API,允许与其他语言编写的代码进行强集成。用其他语言编写的库很容易扩展Lua。用其他语言编写的程序也很容易用Lua扩展。Lua不仅用于扩展用C和C++编写的程序,还用于Java、C#、Smalltalk、Fortran、Ada、Erlang,甚至其他脚本语言,如Perl和Ruby。
Lua功能强大(但简单)
Lua设计中的一个基本概念是提供元机制来实现特性,而不是直接在语言中提供大量特性。例如,尽管Lua不是一种纯面向对象的编程语言,但它确实提供了实现类和继承的元机制。Lua的元机制带来了概念的经济性,保持了语言的小巧,同时允许以非常规方式扩展语义。
Lua小巧
将Lua添加到应用程序中不会使其膨胀,这也为安全性做出了贡献。Lua 5.4.7的tar包,包含源代码和文档,压缩后占用365K,解压缩后占用1.3M。源代码大约包含31000行C代码。在64位Linux下,包含所有标准Lua库的Lua解释器占用279K,Lua库占用464K。
Lua是免费的
Lua是免费的开放源代码软件,根据非常宽松的许可证(著名的MIT许可证)分发。它可以用于任何目的,包括商业目的,而且绝对不收取任何费用。只需下载并使用它。
Lua在linux上的安装
Bash
curl -L -R -O https://www.lua.org/ftp/lua-5.4.7.tar.gz
tar zxf lua-5.4.7.tar.gz
cd lua-5.4.7
make all test
Lua在windows上的安装
1.下载gcc编译器
TDM-GCC 型 (jmeubank.github.io)
2.下载Lua源代码
https://lua.org/ftp/lua-5.4.7.tar.gz
3.解压缩Lua源码
我放到了这里:C:\lua-5.4.7
4.编写build.bat,复制下面的代码,粘贴到build.bat中
@echo off
:: ========================
:: file build.cmd
:: ========================
setlocal
:: you may change the following variable's value
:: to suit the downloaded version
set lua_version=5.4.7
set work_dir=%~dp0
:: Removes trailing backslash
:: to enhance readability in the following steps
set work_dir=%work_dir:~0,-1%
set lua_install_dir=%work_dir%\lua
set compiler_bin_dir=%work_dir%\tdm-gcc\bin
set lua_build_dir=%work_dir%\lua-%lua_version%
set path=%compiler_bin_dir%;%path%
cd /D %lua_build_dir%
mingw32-make PLAT=mingw
echo.
echo **** COMPILATION TERMINATED ****
echo.
echo **** BUILDING BINARY DISTRIBUTION ****
echo.
:: create a clean "binary" installation
mkdir %lua_install_dir%
mkdir %lua_install_dir%\doc
mkdir %lua_install_dir%\bin
mkdir %lua_install_dir%\include
copy %lua_build_dir%\doc\*.* %lua_install_dir%\doc\*.*
copy %lua_build_dir%\src\*.exe %lua_install_dir%\bin\*.*
copy %lua_build_dir%\src\*.dll %lua_install_dir%\bin\*.*
copy %lua_build_dir%\src\luaconf.h %lua_install_dir%\include\*.*
copy %lua_build_dir%\src\lua.h %lua_install_dir%\include\*.*
copy %lua_build_dir%\src\lualib.h %lua_install_dir%\include\*.*
copy %lua_build_dir%\src\lauxlib.h %lua_install_dir%\include\*.*
copy %lua_build_dir%\src\lua.hpp %lua_install_dir%\include\*.*
echo.
echo **** BINARY DISTRIBUTION BUILT ****
echo.
%lua_install_dir%\bin\lua.exe -e"print [[Hello!]];print[[Simple Lua test successful!!!]]"
echo.
pause
5.将builld.bat放到lua-5.4.7同级目录内
要注意,lua-5.4.7文件夹内部,是doc,src,Makefile和README.txt
6.双击运行build.bat
等待结束。会在同级目录生成lua文件夹
在命令行窗口显示如下
说明安装成功。
7.设置环境变量
环境变量->系统变量->Path,在里面输入上面生成的lua文件夹下的bin路径。
我是把lua文件夹放在了C:\Program Files\lua,因此我在环境变量Path中填写了C:\Program Files\lua\bin
8.打开shell或cmd窗口,输入lua
在cmd或shell窗口,输入lua,会进入lua交互模式,此时可以执行lua命令了。
Lua相关网站
Lua官网:The Programming Language Lua
Lua官方网站,可以下载最新版Lua。截止到今天,Lua最新版本为5.4.7。里面包含有Lua使用手册、源码、工具等各种内容。
Lua包管理器LuaRocks:LuaRocks - Lua 包管理器
LuaRocks是Lua模块的包管理器。它允许您创建和安装Lua模块作为名为rocks的自包含包。您可以在Unix和Windows上下载和安装LuaRocks。LuaRocks是免费软件,并使用与Lua相同的许可证。
Lua游戏引擎love2d:LÖVE - Free 2D Game Engine (love2d.org)
LÖVE是一个 非常棒 的框架,您可以使用它用Lua制作2D游戏。它是免费的、开源的,并且在Windows、macOS、Linux、Android和iOS上都可以使用。
Lua游戏引擎love3d:Love3D - LOVE (love2d.org)
Löve3D引擎(从g3d分支而来)简化了LÖVE的2D功能,以便3D游戏尽可能简单易用。我们建议使用Blender(开源软件)来构建在Löve3D游戏中使用的3D模型。
Löve3D与Löve2D源代码完全兼容。您可以将Löve2D的代码片段添加到Löve3D中,而不会出现任何工作问题。
Lua游戏引擎corona:Corona: Free Cross-Platform 2D Game Engine (coronalabs.com)
Corona是一个免费、跨平台的框架,非常适合为移动设备和桌面系统创建游戏和应用。使用强大但易于学习的Lua脚本语言,超过1000个内置API,大量的插件选择,以及Corona Native扩展(C/C++/Obj-C/Java),您可以实现您的应用梦想。您甚至可以使用Live Builds在多个设备上即时监控项目。这些功能以及更多都是Corona生态系统的一部分!
tolua:topameng/tolua
tolua# 是一个Unity的Lua静态绑定解决方案。这是第一个通过反射分析代码并生成包装类的解决方案。 它是一个Unity插件,极大地简化了C#代码与Lua的集成。它可以自动生成绑定代码,以便从Lua访问Unity,并将C#的常量、变量、函数、属性、类和枚举映射到Lua。 tolua# 是从cstolua发展而来的。它的目标是成为一个强大的Unity开发环境。 支持Unity4.6.x和Unity5.x所有版本(复制/Unity5.x/Assets到/Assets)
xLua:Tencent/xLua: xLua
腾讯推出的xLua 为 Unity、.Net、Mono 等 C# 环境增加 Lua 脚本编程的能力,借助 xLua,这些 Lua 代码可以方便的和 C# 相互调用。