Course Code: luacomp
Duration: 21 hours
Prerequisites:

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

Overview:

Lua 是一种易于使用的脚本语言,在不同的产品中用作嵌入式外挂程式/扩展语言。例如,它是nmap和wireshark等网路应用程式的嵌入式脚本语言,也可以在魔兽世界、Orbiter 和其他游戏中找到脚本语言。

Lua 也可以作为独立语言使用。它是一种轻量级、多范式的程式设计语言,因此该课程教授各种概念,学生会发现这些概念在软体工程的其他领域也很有用。

本课程涵盖了关于 Lua 的所有资讯。我们从基本的程式设计结构开始构建,学习高级技术,最后讨论将 Lua 嵌入到其他程式设计语言中,以及将其他程式设计语言嵌入到 Lua 中。该课程包含大量程式设计练习,以便新手可以从头开始熟练掌握这门语言。

Course Outline:

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 状态
Sites Published:

United Arab Emirates - Comprehensive Lua

Qatar - Comprehensive Lua

Egypt - Comprehensive Lua

Saudi Arabia - Comprehensive Lua

South Africa - Comprehensive Lua

Brasil - Compreendendo a linguagem de programação Lua

Canada - Comprehensive Lua

中国 - Comprehensive Lua

香港 - Comprehensive Lua

澳門 - Comprehensive Lua

台灣 - Comprehensive Lua

USA - Comprehensive Lua

Österreich - Lua Programmierung

Schweiz - Lua Programmierung

Deutschland - Lua Programmierung

Czech Republic - Comprehensive Lua

Denmark - Comprehensive Lua

Estonia - Comprehensive Lua

Finland - Comprehensive Lua

Greece - Comprehensive Lua

Magyarország - Comprehensive Lua

Ireland - Comprehensive Lua

Luxembourg - Comprehensive Lua

Latvia - Comprehensive Lua

España - Comprehensive Lua

Italia - Comprehensive Lua

Lithuania - Comprehensive Lua

Nederland - Comprehensive Lua

Norway - Comprehensive Lua

Portugal - Compreendendo a linguagem de programação Lua

România - Comprehensive Lua

Sverige - Comprehensive Lua

Türkiye - Comprehensive Lua

Malta - Comprehensive Lua

Belgique - Comprehensive Lua

France - Comprehensive Lua

日本 - Comprehensive Lua

Australia - Comprehensive Lua

Malaysia - Comprehensive Lua

New Zealand - Comprehensive Lua

Philippines - Comprehensive Lua

Singapore - Comprehensive Lua

Thailand - Comprehensive Lua

Vietnam - Comprehensive Lua

India - Comprehensive Lua

Argentina - Comprehensive Lua

Chile - Comprehensive Lua

Costa Rica - Comprehensive Lua

Ecuador - Comprehensive Lua

Guatemala - Comprehensive Lua

Colombia - Comprehensive Lua

México - Comprehensive Lua

Panama - Comprehensive Lua

Peru - Comprehensive Lua

Uruguay - Comprehensive Lua

Venezuela - Comprehensive Lua

Polska - Lua Programming

United Kingdom - Comprehensive Lua

South Korea - Comprehensive Lua

Pakistan - Comprehensive Lua

Sri Lanka - Comprehensive Lua

Bulgaria - Comprehensive Lua

Bolivia - Comprehensive Lua

Indonesia - Comprehensive Lua

Kazakhstan - Comprehensive Lua

Moldova - Comprehensive Lua

Morocco - Comprehensive Lua

Tunisia - Comprehensive Lua

Kuwait - Comprehensive Lua

Oman - Comprehensive Lua

Slovakia - Comprehensive Lua

Kenya - Comprehensive Lua

Nigeria - Comprehensive Lua

Botswana - Comprehensive Lua

Slovenia - Comprehensive Lua

Croatia - Comprehensive Lua

Serbia - Comprehensive Lua

Bhutan - Comprehensive Lua

Nepal - Comprehensive Lua

Uzbekistan - Comprehensive Lua