课程大纲

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 小时
 

人数


开始

完结


Dates are subject to availability and take place between 09:30 and 16:30.

每位参与者的报价

客户评论 (3)

相关课程

Combined C/C++, JAVA and Web Application Security

  28 小时

Advanced Java Security

  21 小时

Combined JAVA, PHP and Web Application Security

  28 小时

Java and Web Application Security

  21 小时

Advanced Java, JEE and Web Application Security

  28 小时

课程分类