learn lua the hard way

本文提供了一款Lua编程学习工具LuaMissions,通过填空形式帮助用户掌握Lua语法和API。包括20个关键专题,如asserts、variables等,并提供官方文档和其他学习资源作为补充。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

找到一个学习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


祝大家学习快乐!!





评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值