Scripting 开始Lua脚本编写

Scripting 开始Lua脚本编写,scripting,lua,Scripting,Lua,我正处于被迫学习Lua的阶段,你对我如何做到这一点有什么建议吗?除了PHP之外,我对任何其他脚本语言都没有太多经验 那么,关于“领先Lua”-页面的一些建议 编辑 作为对精彩教程页面的补充,你能推荐一些我可以制作的帮助我学习Lua的“程序”吗?假设我想学习C++中的指针,我会做一个链表。我想接触Lua的基本知识,但同时也要对非常高级的东西持开放态度。首先,你需要花一两天的时间来了解Lua的要点 然而,我可以在您第一次使用忽略协程和元表时立即告诉您,它们非常强大,但需要一段时间才能掌握。首先学习语

我正处于被迫学习Lua的阶段,你对我如何做到这一点有什么建议吗?除了PHP之外,我对任何其他脚本语言都没有太多经验

那么,关于“领先Lua”-页面的一些建议

编辑


作为对精彩教程页面的补充,你能推荐一些我可以制作的帮助我学习Lua的“程序”吗?假设我想学习C++中的指针,我会做一个链表。我想接触Lua的基本知识,但同时也要对非常高级的东西持开放态度。

首先,你需要花一两天的时间来了解Lua的要点

然而,我可以在您第一次使用忽略协程和元表时立即告诉您,它们非常强大,但需要一段时间才能掌握。首先学习语法、作用域(幸运的是与PHP相同)和标准库

在这之后,返回到协程和元表,阅读它们并尝试它们,到第三次通过时,您可能会得到它。除非你有很好的CS背景,否则这些都是复杂的话题

编辑:该书在线免费==网站。除此之外,这是关于Lua最好的教程,每个人都用它来学习Lua

另外:如果你的目标是魔兽世界的Lua(可能不是但只是以防万一),你可以去看看

和:这里有一个关于StackOverflow的帖子,可能会帮助您了解Lua的期望

建议的计划/练习:

由于您最初关注的是Lua for web development,请尝试理解并改进PIL中的示例。它会给你一些好主意,让你对power或Lua有一种很好的感觉

然后,您可能想尝试使用这一章,尽管Lua有一个复杂的数据类型,即Table,但这一章将向您展示类似Lua的方法,使表可以执行您需要的任何操作

最后,一旦您开始研究元表,您应该设计一个类系统(是的,使用Lua,您可以决定类系统的工作方式)。我相信每个人都知道Lua已经建立了十几个课程体系,让你开始学习课程体系的一个好章节是


如果你有时间并且知道C或者类似的东西(包括C和Java),试着用Lua扩展一个应用程序,但是这需要一到两周的时间来完成。除了上面的建议,还有一个非常值得一看的方法。那里有大量有用的代码片段和小食谱。

你可以安装魔兽世界并为此制作一个mod(它使用Lua)。事实上,这可能是个坏主意

或许可以尝试将Lua集成到.NET应用程序中(假设您是一名C#程序员),并用它做一些“有趣”的事情:


或者只需浏览lua.org

网站上还有大量与lua相关的项目

如果您碰巧使用Windows作为您的日常平台,那么我建议您从该软件包入手。它包括大量有用的模块,这些模块都是与Lua解释器一起预构建和安装的

在您第一次通过和之后,您将希望阅读目前仅在纸质版中提供的内容

<>代码> <代码>考虑通过相关链接购买或支持项目。代码>

编辑:对于适合Lua的编程项目,请查找
表提供杠杆作用的问题。表是Lua的核心,因为即使是全局变量也只是表中的字段。表可以由除
nil
之外的任何数据类型的值进行索引,但如果用作数组,则具有特别有效的实现

一个让来自C类背景的人感到困惑的怪癖是,Lua中的所有内容都从1开始自然地被索引。字符串从1开始索引,数组从1开始,等等。不用太担心,使用
a[0]
没有错,但是
#a
给出的数组长度是在假设数组从
a[1]
开始的情况下定义的

另一个怪癖是函数实际上没有名称。它们是第一类值,通常存储在具有名称的某个变量中。语法糖使它们看起来像有名字一样,但这只是一种方便

元表是表(和其他类型的表,但这是一个非常高级的主题)的一个特别的Lua-ish特性,它是在Lua中执行面向对象操作的大多数方案的基础


闭包和真正的尾部调用是Lua的其他功能,在小型脚本语言中并不常见,它们可以使一些习惯用法易于实现。

看到所有这些详细的列表很有趣(尽管它们肯定是正确的)。早在2002年,我阅读了Lua参考手册的前20多页,并开始使用它。其实就是这么简单。Lua(和ANSIC)是少数几个真正能同时进入人们头脑的语言之一——并且一直停留在那里。对于其他人,至少我需要不断地重新学习

请注意,在Lua中开始思考需要时间。我想我的是6个月左右。当我们来自C/C++时,我们倾向于以某种方式解决问题。Lua可能提供更好的方法(即通过使用表格),但需要一段时间才能开始看到这些方法。这种向更高抽象级别的转换类似于20世纪80年代的汇编程序->C转换。有一段时间,许多人仍然用C编写代码,就好像它只是一个可移植的汇编程序一样。

我在一个项目中为使用它的人写了一篇短文。 如果您熟悉其他脚本语言,它可能会帮助您快速启动和运行。
这些都是非常好的,应该涵盖大部分其他你需要的。Lua是一种非常小的语言,可以很快学会。

这是一个非常普遍的建议,但是如果你想作为一名软件工程师开始使用一种新的编程语言,那么开始学习是很有趣的