开始Lua脚本

问题描述:

我正处于一个我被迫学习Lua的阶段,所以你对我如何做这件事有什么建议吗?我对PHP以外的其他脚本语言没有太多的经验。开始Lua脚本

那么,关于“开局Lua”的一些建议 - 页面?

编辑

作为除了精彩的教程页面,你可以请提出“程序”我可以做,这将有助于我学习的Lua?想象一下,我想要学习C++中的指针,我会创建一个链表。我想在Lua中触及基础知识,但同时要向相当先进的东西开放。

+2

一个小点:Lua的名字不是缩写。它被正确拼写成“Lua”或偶尔是“lua”,但从来没有“LUA”。有关整个故事,请参阅http://www.lua.org/about.html。 – RBerteig 2009-02-24 10:23:13

+0

只是做了相同的评论。 :P这往往是第一个迹象表明谁来Lua。你不是一个人。 – akauppi 2009-02-24 12:03:55

+0

Lua不是许可证用户协议。 ;) – 2009-02-24 12:45:34

首先通过Programming in Lua工作,它应该花你一两天才能得到Lua的要点。

但是我可以马上通过忽略协程和metatables告诉你,它们非常强大,但需要一段时间才能掌握。首先学习语法,确定范围(与PHP幸运地相同)和标准库。

之后,回到协程和metatables,阅读他们尝试他们,并通过你第三次可能会得到它。除非你有一个非常好的CS背景,这些是复杂的主题

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

另外:如果你的目的是Lua的魔兽世界(可能不是,但以防万一),你可以检查出this tutorial

和:这里是一个tips and tricks线程在计算器上,可能会帮助给你什么,从Lua期望

推荐节目/练习一些想法:

既然你最初看的Lua对于Web开发尝试了解并改进PIL中的Data Description示例。它会给你一些好的想法和一个很好的感觉力量或Lua。

然后你可能想尝试玩Data Structures这个章节,尽管Lua有一个复杂的数据类型,表格,该章节将向你展示类似Lua的方式来创建一个你需要的表格。

最后,一旦你开始讨论metatables,你应该设计一个类系统(是的,你可以决定你的类系统是如何工作的)。我敢肯定每个知道Lua的人都已经制作了十几个课程系统,让你在课堂系统上开始的一个很好的篇章是Object-Oriented Programming

如果你有时间并且知道C或类似的东西(包括C#和Java)尝试扩展与Lua的应用程序,但这将需要一两个星期做

除了上面的建议,还有Lua wiki这是非常值得浏览。有大量的代码片段和小的食谱可以是有用的。

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

也许尝试到Lua集成到.NET应用程序(假设你是一个C#程序员),并做一些 '有趣' 吧:

Using Lua with C#

或者只是浏览lua.org

还有一大批与Lua有关的项目,其地址为LuaForge

如果您碰巧使用Windows作为您的日常平台,那么我建议您将Lua for Windows包作为一个很好的起点。它包含大量有用的模块,全部预先构建并与Lua解释器一起安装。

在您第一次通过PiLreference manual后,您需要阅读Lua Programming Gems,该文件目前仅在纸质版中可用。

<plug>不要考虑通过关联链接Lua's books pageLuaForge购买书籍来支持这些项目。 </plug>

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

让一个来自类似C的背景的人感到尴尬的是,Lua中的所有东西都是从1开始自然索引的。字符串从1开始索引,数组从1开始等。不要担心很多,使用a[0]没有任何问题,但是#a给出的数组长度的定义是假设数组以a[1]开头。

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

表格(以及其他类型,但这是一个非常高级的主题)中的元素特别是Lua-ish特性,它们是Lua中大部分用于执行面向对象事物的基础。

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

很高兴看到所有这些精心制作的清单(尽管它们当然是正确的)。早在2002年,我就阅读了Lua参考手册的前20+页,并开始使用它。这真的是那简单。 Lua(和ANSI C)是几种真正适合你思想的语言 - 并留在那里。对于其他人,至少我需要不断地进行一些再学习。

请注意,在Lua认为认为需要时间。我认为我的时间是6个月左右。当来自C/C++时,我们倾向于以某种方式解决问题。 Lua可能会提供更好的手段(即通过使用表格),但需要一段时间才能开始查看。这种向更高抽象层次的转变类似于20世纪80年代的汇编 - > C转变。许多人仍然用C语言编写代码,好像它只是一个便携式汇编程序。

我写了一个简短的quick-start guide to Lua供在我正在研究的项目中使用它的人使用。 如果您熟悉其他脚本语言,它可能会让您快速启动并运行。 docs on Lua.org非常好,应该涵盖大部分你需要的一切。 Lua是一个非常小的语言,可以很快学会。

这是一个非常普遍的建议,但是如果您想以软件工程师的身份开始使用新的编程语言,那么开始使用新编程语言在Project Euler处发现问题很有趣。我最近一直在用Python做这件事,发现它很鼓舞人心,并且给编码带来了很大的热情。