课程链接
这节课主要讲解了Lua中的字符串处理函数和二进制操作,以下是总结要点:
一、字符串长度(string.len / :len())
二、大小写转换(string.lower / string.upper)
三、二进制打包与解包(string.pack / string.unpack)
- 作用:数据存储或传输时压缩为二进制格式。
- 关键点:
- 格式符:
i
(整数)、f
(单精度浮点)、d
(双精度浮点)。
- 示例:
local data = {1.1, 2.2, 3.3}
local packed = string.pack("fff", data[1], data[2], data[3])
local unpacked = string.unpack("fff", packed)
- 注意:二进制数据需对齐格式,精度受位数(32/64位)影响。
四、其他字符串函数
- string.rep:重复字符串。
print(string.rep("a", 3)) -- 输出aaa
- string.reverse:反转字符串。
print("123":reverse()) -- 输出321
- string.sub:截取子串(已讲)。
五、混淆概念
- 目的:增加代码阅读难度,防止简单反编译。
- 方法:
- 变量名替换(如
a
→_x1
)。
- 结构复杂化(嵌套回调、闭包)。
- 编码转换(ASCII码、二进制打包)。
六、后续学习
- 重点库:
table
(核心)、os
(时间/文件)、debug
(高级)。
- 游戏开发:系统函数封装到模块(如限制玩家名长度)。
总结:字符串和二进制操作是Lua基础,理解后可灵活用于数据处理、协议交互。混淆虽非必需,但对保护代码有一定帮助。