learn lua the hard way

找到一个学习lua的资源:

Lua Missions

下载:

https://github.com/kikito/lua_missions

missions目录为题目,src目录为答案。

如何运行:

cd lua_missions\missions

lua missions.lua

学习的形式

通过填空的形式,学习lua的语法和API。例如:

function test_string_find_a_pattern()

local str = ‘banana‘

local pattern = ‘an‘

local start_pos, end_pos = string.find(str, pattern)

assert_equal(__(2), start_pos)

assert_equal(__(3), end_pos)

end

第一次运行lua missions.lua,查看当前完成进度,会显示:

*** Mission status ***

asserts...........................................[Incomplete]

test_assert: [fail]

Assertion failed: Expected [false] to be [true]

The error happened here:

asserts.lua:3: in function <asserts.lua:2>

这里的error不要紧,正是我们需要填的空,所有的error都改完了就算合格!!

共有以下专题:

‘asserts‘,

‘variables‘,

‘numbers‘,

‘strings‘,

‘patterns‘,

‘control‘,

‘truthiness‘,

‘functions‘,

‘errors‘,

‘load‘,

‘tables‘,

‘tables_and_functions‘,

‘meta‘,

‘indices‘,

‘exercise‘,

‘weak_tables‘

每个专题一个文件,按照missions.lua的引导,注意用文本编辑器修改error完成学习,关键不在改错,请关注每一个例子的名字,名字为这个例子要学习的目的!!

基于lua5.1,有些语法在lua5.3中不适用,例如loadstring 被load代替,unpack被tableunpack代替等,需要注意,否则总是改不对。

其他学习资源:

Programming In Lua(官方文档)

Beginning Lua Programming(比官方文档更细致,有点厚)

http://lua-users.org/wiki/LearningLua

祝大家学习快乐!!

时间: 2024-08-28 04:11:34

learn lua the hard way的相关文章

Lua:简单入门

首先,感谢 runoob.com:http://www.runoob.com/lua/lua-tutorial.html 直接用 SciTE 进行文本编辑,F5调试,非常方便. 注意点: 1. 变量的作用域:全局变量.局部变量- local 声明,do - end 可以用于划分作用域. 2. 对多个变量赋值要逐个赋值,不可 a, b, c = 0.必须是 a, b, c = 0, 0, 0. 3. 运算符居然不能用 “++”.“+=”,其他都跟C/C++类似. 4. 流程控制: i = 0 wh

Lua基础语法讲解

Lua 是什么? Lua 是一种轻量小巧的脚本语言,用标准C语言编写并以源代码形式开放, 其设计目的是为了嵌入应用程序中,从而为应用程序提供灵活的扩展和定制功能. Lua 是巴西里约热内卢天主教大学(Pontifical Catholic University of Rio de Janeiro)里的一个研究小组,由Roberto Ierusalimschy.Waldemar Celes 和 Luiz Henrique de Figueiredo所组成并于1993年开发. 设计目的 其设计目的是

Awesome Torch

Awesome Torch This blog from: A curated list of awesome Torch tutorials, projects and communities. Table of Contents Tutorials Model Zoo Recurrent Networks Convolutional Networks ETC Libraries Model related GPU related IDE related ETC Links Tutorials

[it-ebooks]电子书列表

#### it-ebooks电子书质量不错,但搜索功能不是很好 #### 格式说明  [ ]中为年份      ||  前后是标题和副标题  #### [2014]: Learning Objective-C by Developing iPhone Games || Leverage Xcode and Objective-C to develop iPhone games http://it-ebooks.info/book/3544/ Learning Web App Developmen

(转) [it-ebooks]电子书列表

[it-ebooks]电子书列表 [2014]: Learning Objective-C by Developing iPhone Games || Leverage Xcode and Objective-C to develop iPhone games http://it-ebooks.info/book/3544/Learning Web App Development || Build Quickly with Proven JavaScript Techniques http://

How to embed Lua 5.1 in C++

http://blog.csdn.net/cnjet/article/details/5909555 Lua, is a scripting language providing dynamic data structures, maths, io and string manipulations just like any interprete language such as Bash, Python, Ruby etc. What is so special about Lua? Lua

Lua学习之加载其他lua文件

Lua 中提供了模块的概念,模块类似一个封装库或者 C++ 中的一个类,可以将公用的部分提到一个文件中,以 API 的形式供其他 lua 文件调用. Lua 中的模块其实就是包含变量.函数等已知元素组成的 table, 本质上是一个 table. 一.模块的声明 创建一个名称为 LearnModule.lua 的文件,并在此文件中实现下列代码: -- 定义一个名为ModuleT的模块,模块的本质就是一个table,内部包含变量和函数等 ModuleT = {} -- 定义一个变量 ModuleT

cocos2dx lua中异步加载网络图片,可用于显示微信头像

最近在做一个棋牌项目,脚本语言用的lua,登录需要使用微信登录,用户头像用微信账户的头像,微信接口返回的头像是一个url,那么遇到的一个问题就是如何在lua中异步加载这个头像,先在引擎源码里找了下可能会提供这个功能的地方,发现好像没有提供类似功能,那么只能自己动手写.所以我在ImageView这个类里面添加了一个成员方法,其实可以不写在ImageView里,而且我觉得非必需情况下还是不要修改引擎源码的好,因为如果源码改动比较多的话,将来引擎版本升级会比较麻烦.我写在ImageView里纯粹是想偷

Lua 第一天

今天开始学习Lua语言,感觉Lua非常便捷.我用的编译器是SciTE,很不错. 举例一:无需引用,内置输出语句   print() print(6)   --> 6 print(type(6))  -->   number 举例二:对数字字符串进行数字化处理 print("2"+3 )  -->5 举例三:..连接俩个字符串,#返回字符串长度 举例四:print()输出函数,可以有多个输出值 a = 1,b =2,c = a+b    print(a,b,c,a,b,