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