课程大纲

Lua 简介

  • 一点历史
  • Lua的目标、特点和非目标
  • Lua 文档和教程的资源
  • 安装 Lua 解释器
  • 设置和使用 LuaRocks

基本语法和语义

  • 标识符
  • 评论、阻止评论
  • 全局变量和严格性的实施
  • 局部变量
  • 独立程序、程序参数
  • 编译单元、块、表达式、分号

数据类型和数据结构

  • 基本类型:nil、boolean、number、string
  • 对象类型:函数、用户数据、线程、表
  • 引用/对象与基本值
  • Lua 中表格的重要性

介绍桌子及其多功能性

  • 表作为关联数组
  • 表作为数字数组、序列

基本控制结构

  • if then elseelse 结束
  • while 循环
  • 重复循环
  • 简单的 for 循环

错误处理

  • 返回值与异常
  • 将返回值转换为异常
  • 将异常转换为返回值
  • 错误级别

示例程序

  • 多项式求值
  • 广度优先搜索
  • 其他练习

有关函数的更多信息

  • 命名参数
  • 面向对象的调用
  • 闭 包
  • 咖喱
  • 尾部呼叫
  • 多次分配和返回
  • 瓦拉格斯

迭代器和协程

  • 泛型 for 循环
  • 无状态迭代器与有状态迭代器
  • 迭代器和协程之间的差异

元表和元方法

  • 设置示例
  • __tostring元方法
  • 算术元方法
  • __index、__newindex元方法
  • __len元方法

模块和软件包

  • 使用模块
  • 创建模块
  • 将模块组织到包中

高级表

  • 队列和堆栈的表
  • 描述图形的表格
  • 矩阵作为表
  • 以表格形式链接的链表
  • 字符串缓冲区

通过示例的元表

  • 代理
  • 只读
  • 记忆
  • 带记忆的动态编程
  • 斐波那契例子

环境

  • 全局变量与环境的关系
  • 自由变量
  • _ENV 表和 _G 表

有关模块的更多信息

  • 创建模块的不同方法
  • 更改行为的模块
  • 模块初始化和参数
  • 使用环境实现安全模块

高级迭代器和协程

  • 生产者、消费者、过滤器
  • 包装协程以获取迭代器
  • 链表的无状态迭代器

为生态系统做贡献

  • 将包裹上传到 MoonRocks

Lua 中的函数范式

  • map 函数
  • 缩小/折叠功能

面向对象 Programming

  • 不同的 OOP 方法
  • 不同的继承方法
  • 例子

Lua 标准库演练

汇编

  • 汇编
  • 评估
  • 与环境的关系
  • 二进制块

垃圾回收

  • 弱表
  • 终结器,__gc元方法

Lua 字节码和虚拟机

  • 从源代码生成字节码
  • 读取和分析字节码
  • 快速浏览 Lua VM 的源代码

C 模块

  • 从 Lua 调用 C
  • Search C 模块的路径和加载

从 C 调用 Lua

  • 堆栈
  • 错误处理
  • 延续

处理 C 中的 Lua 值和类型

  • 阵 列
  • 字符串
  • 用户数据
  • 元表
  • 面向对象的调用
  • 轻量级用户数据

内存管理

  • 25天
  • 气相色谱 API

Lua 中的线程

  • 协程与线程
  • 真正的多线程和 Lua 状态

要求

熟悉至少一种其他编程语言。Programming 经验。或者,如果您熟悉其他脚本语言,这将使您更容易理解 Lua。

 21 小时

即将举行的公开课程

课程分类