开始Lua编程脚本
我处于强制学习 Lua 的阶段,你有任何建议吗?除了 PHP,我没有太多经验使用其他脚本语言。
那么,有没有“Lua 入门”的建议页面?
编辑
除了精彩的教程页面,你能否提供一些让我学习 Lua 的“程序”建议?想象一下,如果我想学习 C++ 中的指针,我会制作一个链接列表。我想接触一些 Lua 的基础知识,同时又开放一些相当高级的东西。
原文链接 https://stackoverflow.com/questions/581074
你可以安装《魔兽世界》并为其制作一个 mod(它使用 Lua)。实际上,这可能不是一个好主意。
也许可以尝试将 Lua 集成到 .NET 应用程序中(假设你是 C# 程序员),然后做一些“有趣”的事情:
或者只需浏览 lua.org。
在LuaForge网站上也有很多与Lua相关的项目。
如果您日常使用的平台是Windows,我建议您从Lua for Windows包开始。它包括了许多有用的模块,所有的预构建和安装都与Lua解释器一起。
在您第一次阅读PiL和参考手册之后,您将想要阅读Lua Programming Gems,目前仅提供纸质版本。
<plug>
请考虑通过Lua的书籍页面或LuaForge的联属链接购买书籍来支持该项目。</plug>
Edit: 对于适合使用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可能提供更好的方法(例如通过使用表),但需要一段时间才能开始看到它们。这种向更高抽象级别的转换类似于1980年代汇编语言->C语言的转变。许多人仍会用C语言进行编码,就好像它只是一种可移植的汇编语言一样。
我为正在使用 Lua 的项目写了一个短小的快速入门指南。如果您熟悉其他脚本语言,这可能会让您快速上手。Lua.org 上的文档非常好,应该涵盖您需要的大部分内容。Lua 是一种相当简洁的语言,可以很快学会。
这是一个相当通用的建议,但如果你想作为软件工程师开始使用新的编程语言,可以在你的新语言中解决Project Euler找到的问题是一种很有趣的方式。最近我用 Python 进行了这个挑战并发现它激励我,让我对编码充满了热情。
- 如何在roblox studio中1:1导入真实世界的地形?
- 求解,lua_resume的第二次调用继续执行协程问题。
- 【上海普陀区】内向猫网络招募【Skynet游戏框架Lua后端程序员】
- SF爱好求教:如何用lua实现游戏内调用数据库函数实现账号密码注册?
- Lua实现网站后台开发
- LUA错误显式返回,社区常见的规约是怎么样的
- lua5.3下载库失败
- 请问如何实现文本框内容和某个网页搜索框内容连接,并把网页输出来的结果反馈到另外一个文本框上
- lua lanes多线程使用
- 一个kv数据库
- openresty 有没有比较轻量的 docker 镜像
- 想问一下,有大佬用过luacurl吗
- 在Lua执行过程中使用Load函数出现问题
- 为什么 neovim 里没有显示一些特殊字符?
- Lua比较两个表的值(不考虑键的顺序)
- 有个lua简单的项目,外包,有意者加微信 liuheng600456详谈,最好在成都
- 如何在 Visual Studio 2022 中运行 Lua 代码?
- addEventListener 返回 nil Lua
- Lua中获取用户配置主目录的跨平台方法
- 如何编写 Lua 模式将字符串(嵌套数组)转换为真正的数组?
首先,逐步阅读Programming in Lua,你可能需要一两天时间来理解Lua的主要概念。
然而,我可以告诉你,在你第一次阅读时可以忽略协程和元表,它们非常强大,但需要一段时间才能理解。首先学习语法,作用域(与PHP相同,幸运的是),以及标准库。
在此之后,回到协程和元表,阅读它们并尝试运用,第三次阅读时你可能会理解它们。除非你有非常好的计算机科学背景,否则这些都是复杂的话题。
编辑: 这本书是在线免费的==网站。此外,它是关于Lua最好的教程,每个人都用它来学习Lua。
而且: 如果你的目的是学习用于魔兽世界的Lua(可能不是,但以防万一),你可以查看此教程
还有: 这里有一个StackOverflow上的技巧和提示帖子,可能会帮你理解Lua所期望的一些内容。
建议的程序/练习:
由于你最初是研究Lua用于Web开发,请试着理解并改进PIL中的数据描述例子。它将为您提供一些好的想法和对Lua功能的良好感觉。
然后,你可能想尝试使用数据结构章节中的许多示例展开操作,虽然Lua只有一个复杂的数据类型,即表,但该章节将向您展示Lua的方式来让一个表做任何您需要的事情。
最后,一旦你开始理解元表,你应该设计一个类系统(是的,使用Lua,您可以决定您的类系统如何工作)。我相信学习Lua的人已经做了十几个类系统了,可以通过面向对象编程章节开始设计一个类系统。
如果你有时间并且了解C或类似的内容(包括C#和Java),尝试使用Lua扩展一个应用程序,但这需要一两个星期的时间来完成。