我现在被迫学习Lua,你有什么建议吗?除了PHP,我没有其他脚本语言的太多经验。
所以,有关“快速入门Lua”的建议页面吗?
编辑
除了精彩的教程页面外,您能否推荐一些可以帮助我学习Lua的“程序”?假设我想学习C ++中的指针,我会制作一个链接列表。我想接触Lua的基础知识,但同时也要开放一些相当高级的东西。
我现在被迫学习Lua,你有什么建议吗?除了PHP,我没有其他脚本语言的太多经验。
所以,有关“快速入门Lua”的建议页面吗?
编辑
除了精彩的教程页面外,您能否推荐一些可以帮助我学习Lua的“程序”?假设我想学习C ++中的指针,我会制作一个链接列表。我想接触Lua的基础知识,但同时也要开放一些相当高级的东西。
首先,逐步学习 《Lua编程》,理解Lua的基本概念可能需要一两天时间。
然而,我可以立即告诉你,在第一次学习时忽略协同程序和元表,它们非常强大,但需要花费一些时间来理解。首先学习语法、作用域(与PHP相同,对于你来说很幸运)和标准库。
在此之后,回到协程和元表,阅读并尝试使用它们,直到第三次学习时你可能会理解它们。除非您具有非常好的CS背景,否则这些都是复杂的主题。
编辑:该书免费在线==网站。另外,它是最好的Lua教程,每个人都通过它学习Lua。
还有:如果您的目的是学习用于魔兽世界的Lua(可能不是,但以防万一),您可以查看这个教程
还有:这是一个关于StackOverflow的技巧和窍门帖子,可能有助于您了解Lua的一些预期特性
建议的程序/练习:
由于您最初希望学习用于Web开发的Lua,请尝试理解并改进《Lua编程》中的数据描述示例。这将为您提供一些好主意和对Lua功能的良好感觉。
然后,您可能想要尝试玩数据结构章节,虽然Lua只有一个复杂的数据类型-表,但该章节将向您展示使表执行任何所需功能的类Lua方法。
最后,一旦你开始理解元表,你应该设计一个类系统(是的,使用Lua你可以决定你的类系统如何工作)。我相信每个了解Lua的人都制作过几个类系统,一个好的章节可以让你开始一个类系统:面向对象编程
如果你有时间并且懂得C或其他类似语言(包括C#和Java),可以尝试使用Lua扩展一个应用程序,但这会花费一两周的时间。
在LuaForge上还有大量与Lua相关的项目。
如果你平时使用Windows作为操作系统,我建议你从Lua for Windows软件包开始。它包含了许多有用的模块,所有的Lua解释器和预编译的模块都已经安装好了。
在阅读PiL和参考手册后,你会想阅读Lua Programming Gems,但目前只有纸质版。
<plug>
请考虑通过Lua书籍页面或LuaForge上的关联链接购买图书以支持这些项目。</plug>
编辑:至于适合使用Lua的编程项目,可以寻找那些可以利用table
的问题。表格是Lua的核心,因为即使全局变量也只是表格中的字段。表格可以通过任何数据类型的值进行索引,除了nil
,但如果用作数组,则具有特别高效的实现。
一个令人困惑的问题是,所有Lua中的元素都是从1开始索引的。字符串从1开始索引,数组从1开始,等等。不要太担心这个问题,使用a[0]
没有问题,但由#a
给出的数组长度是假定数组以a[1]
开始的。
另一个问题是函数没有真正的名称。它们是一类值,通常存储在某个具有名称的变量中。语法糖使它们看起来像有名称,但这只是一种方便。
元表是表格(和其他类型,但那是一个非常高级的主题)的一个特别Lua-ish功能,是在Lua中执行面向对象编程的大多数方案的基础。
闭包和真正的尾调用是Lua的其他特性,在小型脚本语言中很少见,可以使一些习惯用法易于实现。
我为正在使用Lua的项目编写了一个快速入门指南。 如果您熟悉其他脚本语言,它可能会让您快速上手。 Lua.org上的文档非常好,应该涵盖您需要的大部分内容。 Lua是一种相当小的语言,可以很快学会。
这是一个相当普遍的建议,但如果你想作为一名软件工程师开始学习一门新的编程语言,那么在你的新编程语言中开始做Project Euler上的问题会很有趣。最近我一直在用Python做这个,发现它很有启发性,能够给编码带来很多热情。