- 博客(34)
- 资源 (20)
- 收藏
- 关注
原创 Lua(垃圾回收)
Lua采用自动增量式垃圾回收机制,基于标记-清除算法实现。其GC分为标记和清除两个阶段,通过pause、stepmul等参数控制回收行为。开发者可使用collectgarbage函数手动触发GC,或通过弱表处理循环引用。优化建议包括复用对象、使用对象池等。Lua提供collectgarbage("count")监控内存使用,但需注意不同版本的GC实现差异及循环引用问题。
2025-07-24 23:44:40
256
原创 Lua(文件I/O)
Lua文件I/O操作提供了简单和完全两种模式。简单模式使用io.input/output设置默认文件,支持基本读写操作;完全模式提供更精细的控制,可实现文件定位、逐行读取等功能。文件打开支持多种模式(r/w/a等),读取支持不同选项(*n/*a/*l)。操作时需注意错误处理、文件关闭及写入模式会清空原内容。还介绍了临时文件操作和文件存在性检查等高级功能,为文件处理提供了灵活多样的解决方案。
2025-07-24 23:11:42
85
原创 Lua协同程序(coroutine)
Lua协同程序(coroutine)是轻量级的协作式线程,由开发者显式控制执行流程。通过create/wrap创建,使用yield暂停、resume恢复执行,支持双向数据传递。特点包括非抢占式调度、低开销和共享状态。典型应用包括生产者-消费者模型、状态机和任务调度。需注意避免阻塞循环,正确处理错误。协同程序适合I/O密集型任务,但不适合CPU并行计算。其生命周期包括创建、执行、暂停和终止状态。
2025-07-24 22:52:54
87
原创 Lua元表(Metatable)
Lua元表是用于扩展表行为的特殊表,通过元方法(如__add、__index等)可自定义表的操作方式。关键功能包括:1)定义算术/关系运算;2)处理不存在键的访问(__index);3)拦截赋值操作(__newindex);4)使表可调用(__call)。使用setmetatable/getmetatable管理元表关联,rawget/rawset可绕过元方法。元表支持面向对象特性如继承(通过__index),但需谨慎使用以避免性能和维护问题。
2025-07-24 21:44:44
74
原创 Lua(模块与包)
摘要:Lua模块是通过.lua文件组织的代码库,使用return返回包含函数和变量的表实现模块导出。通过require加载模块,利用package.path/path配置搜索路径。模块支持局部变量封装、依赖管理、版本控制和环境隔离。LuaRocks工具可管理第三方模块。建议遵循小写命名规范,避免使用已移除的module函数。模块支持缓存、元表扩展和跨平台路径处理,适合通过测试脚本验证功能。(150字)
2025-07-24 19:25:09
213
原创 Lua(table)
Lua中的table是一种多功能数据结构,兼具数组和字典功能,可存储任意类型值。创建方式包括空表{}、数组式(如{1,2,3})和字典式(如{name="Lua"})。支持插入、删除、遍历、排序等操作,其中table.concat用于高效字符串拼接。高级功能包括table合并、深拷贝和通过元表实现自定义行为(如运算符重载)。性能优化建议包括预分配数组空间、优先使用数字索引等。table是Lua最核心的数据结构,灵活运用可高效处理复杂数据。
2025-07-24 19:12:06
209
原创 Lua(迭代器)
Lua迭代器是遍历集合元素的重要机制,分为无状态和有状态两种类型。无状态迭代器由外部控制状态(如ipairs/pairs),而有状态迭代器通过闭包或表封装状态。文章介绍了泛型for循环的语法结构,展示了如何实现类似ipairs的迭代器,以及通过闭包、元表和协程创建自定义迭代器的方法。针对性能优化,建议优先使用无状态迭代器和大规模数据的内置函数,并注意协程迭代器的额外开销。这些技术为Lua集合遍历提供了灵活多样的解决方案。
2025-07-24 18:42:19
74
原创 Lua(数组)
Lua数组本质上是整数索引的table,索引默认从1开始但可自定义。通过表构造器创建数组,使用索引访问修改元素,支持动态扩展。遍历可用ipairs或for循环,#操作符获取长度(连续索引部分)。多维数组通过嵌套table实现。注意事项包括索引惯例、nil值影响及动态特性。提供table.insert、remove、sort等实用操作函数。示例展示了数组创建、访问和基本操作。
2025-07-24 18:38:43
63
原创 Lua(字符串)
Lua字符串操作指南:Lua字符串是不可变序列,支持单引号、双引号和长括号([[]])定义。连接使用..操作符,长度用#获取。标准库提供大小写转换(string.upper/lower)、子串查找(string.find)、截取(string.sub)和格式化(string.format)等功能。模式匹配支持轻量级规则,如%d匹配数字。处理大量字符串时推荐使用table.concat提升性能。Lua5.3+还提供UTF-8库处理Unicode。字符串与数值可用tonumber/tostring转换,ASCI
2025-07-24 18:21:41
137
原创 Lua(运算符)
摘要:本文介绍了Lua语言中的运算符及其使用规则。算术运算符包括+、-、、/、%、^等基本运算;关系运算符如==、~=、>、<用于比较操作;逻辑运算符and、or、not处理布尔逻辑;其他运算符包含字符串连接..和长度计算#。特别说明了表长度计算的特殊情况:当表存在空洞(nil值)时,#操作结果可能不确定。最后列出了运算符优先级,从高到低依次为:^、not、-(单目)、/%、+-、..、比较运算符、and、or。
2025-07-24 18:18:21
175
原创 Lua(函数)
该参数是可选的指定函数是全局函数还是局部函数,未设置该参数默认为全局函数,如果你需要设置函数为局部函数需要使用关键字。Lua 函数可以接受可变数目的参数,和 C 语言类似,在函数参数列表中使用三点 ... 表示函数有可变的参数。开始到结束位置的所有参数列表,否则只能为字符串 #,这样 select 返回变长参数的总数。我们可能需要几个固定参数加上可变参数,固定参数必须放在变长参数之前。函数返回值,Lua语言函数可以返回多个值,每个值以逗号隔开。函数参数,多个参数以逗号隔开,函数也可以不带参数。
2025-07-24 14:48:30
96
原创 Lua循环&流程控制
本文介绍了Lua语言中的几种控制结构:while循环在条件为真时重复执行语句;for循环控制重复次数;repeat...until循环直到条件为真为止。同时说明了循环嵌套的可能性,以及break和goto语句的用法。此外,还解释了if条件判断语句及其与else的搭配使用方式,展示了if语句的基本语法结构示例。文中特别提到在Lua中实现continue功能的替代方法。
2025-07-24 14:32:49
39
原创 Lua变量
Lua变量分为全局变量、局部变量和表中的域,默认均为nil。全局变量无须声明即可使用,未初始化的变量返回nil。局部变量需用local声明,作用域限于当前语句块。Lua支持多变量同时赋值,可实现变量交换。建议优先使用局部变量,可避免命名冲突并提升访问速度。对table的索引可使用[]或.操作符。赋值操作仅进行值传递而非引用传递,且会先计算右侧所有值再执行赋值。当变量与值数量不匹配时,Lua会自动补足nil或忽略多余值。
2025-07-23 16:05:03
173
原创 Lua数据类型
Lua语言包含8种基本数据类型:nil(表示无效值或删除变量)、boolean(true/false)、number(默认为双精度)、string(支持多种表示方式)、table(动态大小的关联数组)、function(可作为变量存储)、thread(协程实现)和userdata(用于C/C++数据交互)。其中,nil在比较时需加引号;除false和nil外其他值都为真;字符串可自动与数字转换;table索引默认从1开始;协程具有独立执行环境。这些类型构成了Lua灵活的数据处理基础。
2025-07-23 15:48:26
198
原创 Lua基本语法
Lua编程支持两种执行方式:交互式编程通过在命令行输入lua或lua-i启动,可立即执行代码查看结果;脚本式编程则将代码保存为.lua文件后执行。执行脚本文件有两种方法:1)直接运行lua命令加文件名;2)在文件目录下通过Shift+右键打开PowerShell后执行。Lua文件使用.lua作为标准后缀名。
2025-07-23 15:18:53
111
原创 Lua环境安装
本文提供了Lua语言在不同操作系统下的安装方法。Windows用户可通过GitHub下载安装包(https://github.com/rjpcomputing/luaforwindows/releases),Linux和Mac用户可通过命令行下载5.4.7版源码并编译安装。安装完成后可通过环境测试验证是否安装成功。
2025-07-23 14:56:38
81
原创 Unity天气API请求(高德)
高德地图API天气查询实现步骤摘要:1)注册高德开发者账号并创建应用获取Key;2)通过REST API发送GET请求获取天气数据;3)在Unity中使用协程和UnityWebRequest实现网络请求;4)创建WeatherResponse和Live类解析JSON数据;5)处理请求结果并显示天气信息(包括天气状况、日期时间等)。代码展示了完整的请求流程和错误处理机制,可根据需要修改城市编码等参数获取特定地区天气数据。
2025-07-22 22:40:45
172
原创 Git-常用操作
本文介绍了Git的基本操作流程:1)安装配置用户签名;2)初始化仓库、查看状态及文件管理(添加/移除暂存区);3)提交版本控制(commit/log/reflog)和版本切换;4)分支操作(创建/查看/切换/合并)及冲突解决;5)团队协作(clone/pull/push)和跨团队协作(fork/pull request);6)配置SSH免密登录。重点说明了暂存区与工作区的区别、合并分支的方向性以及多团队协作流程。
2025-07-22 16:18:22
156
Bluetooth LE for iOS tvOS and Android
2021-05-12
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人