首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >开始Lua脚本编写

开始Lua脚本编写
EN

Stack Overflow用户
提问于 2009-02-24 09:26:09
回答 7查看 13.1K关注 0票数 19

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

那么,关于“先开始Lua"-pages的一些建议呢?

编辑

作为一个额外的精彩教程页,请您建议任何“程序”,我可以做,以帮助我学习卢阿?假设我想学习C++中的指针,我会列出一个链接列表。我想接触卢阿的基础,但同时对相当先进的东西开放。

EN

回答 7

Stack Overflow用户

回答已采纳

发布于 2009-02-24 09:27:23

首先,通过用Lua编写程序你的工作方式,它应该需要你一两天得到的精神卢阿。

不过,我可以马上告诉你,你第一次通过忽略协同和元数据,他们是非常强大的,但需要一段时间来掌握。首先学习语法、作用域(对您来说与PHP相同)和标准库。

之后,回到协同和元数据,阅读它们,第三次,您可能会得到它。除非你有一个很好的CS背景,否则这些都是复杂的话题。

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

还:如果你的目标是魔兽世界的Lua (可能不是,但以防万一),你可以查看本教程

和:这里是关于StackOverflow的窍门和窍门线程,可能会帮助您了解Lua的一些期望。

建议的程序/练习:

由于您最初关注的是Lua的web开发,所以请尝试理解并改进PIL中的数据描述示例。它会给你一些好的想法和一个很好的感觉,权力或卢阿。

然后,您可能想尝试使用数据结构章节,尽管Lua有一个单一的复杂数据类型,即表,该章将向您展示类似Lua的方法来使表做您需要的任何事情。

最后,一旦您开始摸索元对象,您应该设计一个类系统(是的,用Lua来决定您的类系统如何工作)。我相信每个知道Lua的人都做了十几个类系统,面向对象程序设计是一个很好的开始学习类系统的章节。

如果你有时间了解C或类似的东西(包括C#和Java ),试着用Lua扩展一个应用程序,但这需要一两周的时间

票数 34
EN

Stack Overflow用户

发布于 2009-02-24 12:09:26

看到这些详细的列表很有趣(尽管它们确实是正确的)。早在2002年,我就读到了Lua参考手册的第一个20+页面,并开始使用它。就这么简单。Lua (和ANSI C)是少数几种一次真正融入一个人头脑的语言--并留在那里。对于其他人,至少我需要不断地做一些重新学习。

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

票数 5
EN

Stack Overflow用户

发布于 2009-02-24 10:39:52

LuaForge也有大量与Lua相关的项目。

如果您碰巧使用Windows作为日常平台,那么我建议您将Lua for Windows包作为一个很好的起点。它包括一系列有用的模块,这些模块都是预先构建并与Lua解释器一起安装的。

在您第一次通过PiL参考手册之后,您将希望阅读当前只在纸质版本中可用的Lua程序设计宝石

<plug>确实考虑通过卢阿书页LuaForge的关联链接购买书籍,以支持这些项目。</plug>

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

让来自C类背景的人感到意外的是,Lua中的所有内容都从1开始自然地进行索引。字符串从1开始索引,数组从1开始,等等。不要太担心,使用a[0]没有什么问题,但是#a给出的数组长度是定义的,假设数组是以a[1]开头的。

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

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

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

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/581074

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档