20250724-lua语言

Table of Contents

  1. Lua语言简介:
    • 定义与特点:Lua是一种轻量级的脚本语言,源代码简洁,适合嵌入其他应用程序中。
    • 应用场景:常用于游戏开发、Web应用扩展等领域。
  2. Lua的安装与配置:
    • 安装过程:下载Lua安装包,解压后设置环境变量。
    • 主要文件:包括`luac54.exe`(编译器)、`lua54.exe`(解释器)、`lua54.dll`(虚拟机库)等。
  3. Lua的基本语法与数据类型:
    • 基本语法:如变量声明、赋值、注释等。
      • 直接创建的变量,默认是全局的,在哪里都可以使用
      • 如果想创建一个局部变量,那么需要使用 local 关键字,这样创建的变量就只在对应的作用域中生效
      • 如果将一个变量赋值为 nil,那么代表这个变量对应的内存就会被回收
    • 数据类型:8个
      • nil boolean number string table function userdata thread
    • 关键字:共22个
      • and break do else elseif end false
      • goto for function if in local nil
      • not or repeat return then true until while
  4. Lua的控制结构:
    • 条件语句:如`if`、`elseif`、`else`等。
    • 循环语句:如`while`、`for`、`repeat`等。
    • 特殊语句:如`break`用于跳出循环。
  5. Lua的函数:
    • 函数定义:如`function func_name(arg1, arg2) do… end`。
    • 参数传递:支持可变长参数,通过`…`表示。
    • 返回值:支持多返回值,特殊处理规则。
      • 如果等号的右边只有一个函数调用,
        • 比如 x, y, z = f1(),那么 f1 所有的返回值都会被使用,
        • 分别按照顺序分配给 x、y、z 三个变量,
        • 不够的赋为 nil,
        • 多余的丢弃
      • 如果等号的右边除了函数调用,还有其它的值,
        • 比如:x, y, z = f1(), 10,
        • 那么如果调用不是在最后一个,则只返回一个值,
        • 如果在最后一个,那么会尽可能返回多个值
  6. Lua的表(Table):
    • 表的概念:Lua中唯一的复合数据结构,既可作数组又可作哈希表。
      • table 的底层是一个结构体,里面实现了哈希表和数组两种结构
      • 如果 key 是整型,那么会通过数组的方式来存储,如果不是,会使用哈希表来存储
      • 注意:如果当成数组使用,那么索引也是从 1 开始的
    • 表操作:如创建、访问、遍历、插入、删除等。
    • 表标准库:如`table.insert`、`table.remove`等函数。
  7. Lua的字符串处理:
    • 字符串操作:如连接、截取、查找、替换等。
    • 字符串库:如`string.len`、`string.find`等函数。
    • UTF-8支持:如`utf8.len`、`utf8.char`等函数。
  8. Lua的文件操作:
    • 文件读写:如`io.open`、`io.read`、`io.write`等函数。
    • 文件模式:如`r`(只读)、`w`(只写)、`a`(追加)等。
    • 错误处理:如文件不存在时的处理方式。
  9. Lua的日期和时间:
    • 时间戳:如`os.time`获取当前时间戳。
    • 日期格式化:如`os.date`格式化日期和时间。
  10. Lua的编译、执行和错误处理:
    • 编译过程:Lua代码先编译为字节码再执行。
    • 错误处理:如`error`、`assert`、`pcall`等函数的使用。
    • 异常捕获:通过`pcall`函数捕获和处理异常。

资源

Date: 2025-07-24 Thu 12:47