Lua是什么?

30

我今天了解了一些关于Lua的内容,想知道它是什么。

我进行了谷歌和维基百科搜索,直到他们开始谈论CAPI,我才开始理解困难。我仍然不明白。

Lua是什么,有没有适用于初学者的教程?


2
你到底没明白什么? - Geo
6
一个名字奇特的整洁编程语言! - NoMoreZealots
7
你读过 http://www.lua.org/about.html 吗? - lhf
10个回答

45

Lua是一种轻量级的解释型编程语言,由巴西开发,重点在于嵌入性。

它用纯ANSI C编写,这意味着即使作为C++代码,也具有高可移植性。

以下是一个示例:

print("Hello World!")

维基百科简介

官方网站


6
我想补充一下,像《Crysis》这样的主流游戏使用它进行脚本编写。 - Tamás Szelei
12
别忘了《魔兽世界》!由于这款游戏,许多Lua黑客组织应运而生。 - Samantha Branham

44

4
所以每个巴西人都认为月亮是个大马桶? - Jonathan DS

34

Lua是一种用于C和C++的脚本语言,它允许使用更简单的Lua语法并在您的C/C++应用程序中执行这些脚本。因此,您不必在每次更改时编译程序,而只需提供一个新的脚本版本。

如果要查找教程,请使用谷歌搜索,您会发现足够的材料可以让您忙碌几天。


我会补充一点,它可以很容易地从你的 Lua 脚本中调用 C 代码(不确定 C++ 是否可以,因为我没试过)。此外,它非常小巧且速度相当快。这使得它成为应用程序的理想"粘合剂"。哦,而且它是一个完美的配置文件解析器(如果你没有将任何函数导入到解释器上下文中,用于解析配置文件)。 - Andrew Y
19
Lua运行时不仅局限于C/C++,它也可以用于其他编程语言,并且除了官方实现外还有其他的实现方式。从技术上讲,Lua本身并不依赖于C或C++。 - OregonGhost

26
Lua是一种简单、轻量级、高度可移植、动态类型、可嵌入和可扩展的多范式脚本语言。它的"原汁原味"(有人会称其为正式版本)是纯粹基于ANSI C开发的,并且具有强大而简单的C API,您可以使用它来嵌入Lua到应用程序中或扩展语言本身的行为方式。它是在里约热内卢天主教大学(PUC-Rio)计算机系开发的。
虽然最初并非为此而设计,但Lua在游戏脚本方面很受欢迎,例如《冰河世纪》和《魔兽世界》等大作。尽管如此,由于其速度、简洁性和可移植性,它也经常用于嵌入式系统(例如eLua项目)和图形计算中。
它的哲学是极简主义,即其核心库非常小,仅具有最小化功能(类似于C的标准库),但通过C API,非常容易添加不能通过纯核心库实现的功能,例如套接字,GUI等。事实上,Lua非常简洁,以至于它的主要 - 也是唯一的 - 结构化数据类型是“表”,它可以被描述为关联数组的"roids。
Lua在本质上是过程式的,但也支持多种程序设计范式,如函数式编程和面向对象编程。
虽然Lua不是最快的脚本语言(可能JavaScript的V8项目赢得了这一奖项),但它非常快(比原始的Python或Ruby快),并且还具有一个非官方的即时实现称为LuaJIT。
最后,Lua实际上只是一门好玩的语言,我推荐您去尝试一下!=)
关于教程,我建议阅读Lua用户维基上的相关文章。
希望能对你有所帮助!=)
附注:由于我是 Stack Overflow 的新用户,无法发布所有链接,但在谷歌上应该很容易找到这些内容。抱歉。=(

1
有一些基准测试结果表明,最快的JIT实现是LuaJIT。显然,LuaJIT甚至比V8表现还要好。 - J. M. Becker

15

Lua是一种脚本语言。链接指向lua.org。它在游戏开发中被广泛使用,最著名的是(对我来说)魔兽世界


7
我在想是否有人认为我是暴雪的员工。事实并非如此,我只是长期玩家,并享受这个游戏很长时间了。另一方面,退出游戏对我的生活来说是最好的决定。/耸耸肩 - Paul Williams
我给了你+1的赞,因为你的答案太棒了! - Mark

10

8
这是一种与C(和C++)配合使用的脚本语言,旨在嵌入到C/C++程序中。它不像其他许多脚本语言那样使用全局变量等,因此可以轻松地线程化lua脚本引擎。此外,它还声称是最快的动态脚本语言。
我曾在基于PC的C++应用程序中使用它来创建插件脚本接口,并将其用作嵌入式脚本语言。它非常灵活、小巧。
但作为通用脚本语言?它并不像Ruby/Python/Perl类型的东西那么强大。它没有那么多库,用户社区也相当小。但是,对于扩展C++/C应用程序而言,它非常棒。

3
Lua是一种脚本语言,用C编写,因其强大和灵活性而广泛用于游戏开发。Lua也是跨平台的,因此可以在任何平台上使用。我使用一个方便的程序叫做AutoPlay Media Studio,它允许你创建完整的Windows平台应用程序,因此Lua也可以用作编程语言。希望这能为您解决问题。
网站:http://www.lua.org。 AutoPlay Media Studio:http://www.indigorose.com

3
C API部分似乎让你感到困惑,它的设计是为了让你能够非常容易地使用Lua脚本控制现有的C代码(或新的C代码)。这就是所谓的“嵌入”。通过嵌入,你可以轻松地获得一个轻量级、可编程、交互式、基于文本的界面,对任何C代码都可以进行控制,而且所需要的工作量非常小。即使你不自己嵌入东西,Lua也是一种非常好的脚本语言。
我最喜欢的例子是,有个很好的人把许多POSIX系统调用放进了Lua中。当我需要像shell脚本一样但更复杂的东西时,我只需使用这个库。同样适用于MD5库和许多其他库。
在学习Lua时,你可以完全忽略C API——只需从API的其他人的工作中受益——如果你以后需要嵌入自己的代码,可以稍后再回来。

2
Lua是一种强大、快速、轻量级、可嵌入的脚本语言。Lua将简单的过程式语法与基于关联数组和可扩展语义的强大数据描述结构相结合。Lua是动态类型的,通过解释寄存器为基础的虚拟机字节码来运行,并具有自动内存管理和增量垃圾回收功能,使其非常适合配置、脚本和快速原型设计。欲了解更多信息,请点击此处

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接