Lua 数据类型概览 速查

Lua 共 8 种数据类型:nil、boolean、number、string、table、function、userdata、thread。用 type() 取类型名;只有 false 和 nil 为假;table 同时充当数组和字典,索引从 1 开始,给字段赋 nil 即删除。
Alexer 发布于 

Lua 冒号调用与点调用区别 速查

冒号调用是语法糖,obj:fn(a) 等于 obj.fn(obj, a),自动把对象作为 self 传入;点调用必须手动传。定义时冒号自动带 self 形参,点定义要自己写 self。定义和调用保持同一种写法,混用会导致参数错位。
Alexer 发布于 

Lua 模式匹配基础 速查

Lua 模式匹配不用正则,靠 string.find、match、gmatch、gsub 四个函数。记住 %a %d %s %w 这类字符类,大写取反,魔法字符加 % 转义,量词有 * + - ?, 是字符集,() 做捕获,%1 在 gsub 里引用捕获内容。
Alexer 发布于 

Lua string.gsub 替换 速查

string.gsub 用于全局替换字符串,返回替换后的新字符串和替换次数。模式用 %d、%a、%s 等 Lua 匹配规则,替换内容支持 %0、%1 捕获引用,也可传函数或表,第四个参数可限制替换次数。
Alexer 发布于 

char 与 varchar 区别 速查

CHAR 定长、不足补空格、取值去尾空格,最大 255;VARCHAR 变长、带 1~2 字节长度前缀、保留尾空格,n 指字符数,受行大小限制。长度固定选 CHAR,其余用 VARCHAR。
Alexer 发布于 

UNION 与 UNION ALL 区别 速查

UNION 合并结果并去重,UNION ALL 保留所有行不去重。两者都要求列数一致、类型兼容;允许重复时用 UNION ALL 更快。
Alexer 发布于 

Lua table.insert 用法 速查

table.insert 用于向 Lua 表插入元素:只传值追加到末尾,传位置则插到指定下标并后移后续元素,表长度自动加一。位置范围 1 到 #t+1,只适用于连续下标的数组,循环收集数据时最常用。
Alexer 发布于 

MySQL 分页越查越慢原因 速查

分页越查越慢是因为 LIMIT 的 offset 太大:MySQL 得先扫过并丢弃前面所有行,二级索引还要逐行回表,排序无索引再加 filesort。改用 where id > 上一页最大 id 往下取,或用延迟关联先查主键再回表,就能稳住速度。
Alexer 发布于 

sprintf 格式化输出 速查

sprintf 用来按占位符拼接字符串并返回结果,不直接输出。常用 %s、%d、%f、%x 等占位符,支持 %05d 补零、%-10s 左对齐、%.2f 保留小数位,也能用 %1$s 这种位置写法重复取参数。参数不够会报错,多了则忽略。
Alexer 发布于 

PHP 二维数组取值 速查

PHP 二维数组取值用两层下标,键名数组写 $arr,数字下标写 $arr;取某一列用 array_column,遍历用 foreach 逐行取,键可能不存在时先用 isset 判断再取值。
Alexer 发布于