Lua编程日志-第0篇

从今天开始,我要写一个Lua语言学习的系列日志。Lua是一门轻量级的脚本语言,可以方便的嵌入其它编程语言中使用。据说它效率很高,而且是一种多重编程范式的程序设计语言。在早几年前,我就想学习这门语言。当时看了云风的博客,感觉Lua很有意思。当时还买了本《Lua程序设计》来看,但一直没有系统的学习过一遍。一方面是自己编程基础薄弱,很多地方很难理解;另一方面是自己兴趣转移的太快,也比较懒。

目前,我重新学习Lua语言的时机已经具备了。在学习过多种编程语言后,我对编程有了一点入门知识,而且现在我想找一门简单的、小巧的、有意思的语言来好好的练习一下编程。之前学习了一段时间Ruby语言,Ruby语言的设计非常精妙,而且功能超级强大。拥有很多语法糖,可以通过元编程来实现DSL领域专用语言来扩展自己。但是过于强大过于灵活,让我无法记住全部的功能。而且面向对象的编程语言,很难真正的锻炼编程的逻辑思维。虽然我暂时不打算深入学习Ruby语言,但我不会放弃它。

下面是我安装并测试Lua语言的步骤:

  1. 在Lua官网上下载最新的Lua源码,官网上面有怎么下载并编译的代码示例。

  2. 我是在windows系统上使用Cygwin作为编程环境的,所以在编译完Lua源码后,需要把lua.exe和luac.exe拷贝到bin文件夹中,替换原有的文件。

  3. 打开cygwin的bash,输入 lua -v 查看lua解释器是否为最新的版本。

  4. 我在Lua官网上下载了Lua 5.2.0的测试文件,来测试lua解释器行为的正确性。

在测试中,发现了一条报错信息:

lua: nextvar.lua:344: bad argument #1 to 'remove' (position out of bounds)

查看对应文件中的代码:

a = {10,20,30,40}
assert(table.remove(a, #a + 1) == nil and table.remove(a, 0) == nil)

经分析,可能是 #a + 1 得到的数字5超出了hash表a的下标范围。这引发了remove函数的报错。把这条测试代码注释掉后,所有文件的测试顺利通过了。

今天主要是配置好了Lua语言开发环境并测试了Lua解释器的正确性。后续我会进一步的记录学习Lua语言的日志,希望通过写日志能培养整理知识的习惯。

2014-06-02


上一篇: 修复Vagrant启动错误 下一篇: 《哥德尔、艾舍尔、巴赫》