Lua 从入门到放弃 All In One
《Lua 从入门到放弃》
What is Lua? Lua is a powerful, efficient, lightweight, embeddable scripting language.
It supports procedural programming, object-oriented programming, functional programming, data-driven programming, and data description.
Lua 是什么? Lua是一种强大,高效,轻量级,可嵌入的脚本语言。
它支持过程编程,面向对象的编程,功能编程,数据驱动的编程和数据描述。
为什么选择 Lua?
- Lua 是一种经过验证的健壮语言
Lua已用于 许多工业应用程序 (例如 Adobe的Photoshop Lightroom),重点是嵌入式系统(例如, 巴西用于数字电视的 Ginga中间件)和 游戏 (例如, 魔兽世界和愤怒的小鸟)。Lua目前 是游戏中领先的脚本语言。Lua有可靠的 参考手册, 并且有 几本有关它的书。 自1993年创建以来, 已经发布了多个 版本的Lua并将其用于 实际应用中。Lua出现在 HOPL III,第三届ACM SIGPLAN编程语言历史大会中,在2007年。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的摘要。另请参见TimmMü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.1的 压缩文件包含源代码和文档,压缩后为346K,未压缩为1.3M。源包含大约29000行C。在64位Linux下,使用所有标准Lua库构建的Lua解释器需要269K,Lua库需要450K。
- Lua 是免费的
$ curl -R -O http://www.lua.org/ftp/lua-5.4.2.tar.gz
$ tar zxf lua-5.4.2.tar.gz
$ cd lua-5.4.2
# Linux
$ make linux test
$ make install
$ curl -R -O http://www.lua.org/ftp/lua-5.4.2.tar.gz
$ tar zxf lua-5.4.2.tar.gz
$ cd lua-5.4.2
# macOS
$ make macosx test
$ make install
install lua
$ curl -R -O http://www.lua.org/ftp/lua-5.4.2.tar.gz
$ tar zxf lua-5.4.2.tar.gz
$ cd lua-5.4.2
$ make all test
# install ✅
$ make install
$ lua -v
# Lua 5.4.2 Copyright (C) 1994-2020 Lua.org, PUC-Rio
$ lua --help
$ lua -h
lua: unrecognized option '-h'
usage: lua [options] [script [args]]
Available options are:
-e stat execute string 'stat'
-i enter interactive mode after executing 'script'
-l name require library 'name' into global 'name'
-v show version information
-E ignore environment variables
-W turn warnings on
-- stop handling options
- stop handling options and execute stdin
HelloWorld.lua
$ touch HelloWorld.lua
$ vim HelloWorld.lua
$ cat HelloWorld.lua
-- HelloWorld.lua
print("Hello World!")
print("Hello World!");
$ lua HelloWorld.lua
Hello World!
Hello World!
xgqfrms