模块 stdlib
require "stdlib"
公开 API
| API | 实现 | 说明 |
|---|---|---|
stdlib.split | S_split | 按分隔符拆分字符串,返回列表 |
stdlib.trim | S_trim | 去除字符串两端空白 |
stdlib.join | S_join | 用分隔符连接列表为字符串 |
stdlib.startswith | S_startswith | 判断字符串是否以指定前缀开头 |
stdlib.endswith | S_endswith | 判断字符串是否以指定后缀结尾 |
stdlib.rep | S_repeat | 重复字符串 n 次 |
stdlib.keys | S_keys | 返回表的所有键(列表) |
stdlib.values | S_values | 返回表的所有值(列表) |
stdlib.size | S_size | 返回表的元素个数 |
stdlib.shallowcopy | S_shallowcopy | 浅拷贝表 |
stdlib.deepcopy | S_deepcopy | 深拷贝表(递归复制嵌套表,处理循环引用;非表值直接返回) |
stdlib.merge | S_merge | 合并多个表(后者覆盖前者) |
stdlib.map | S_map | 对列表每个元素应用函数,返回新列表 |
stdlib.filter | S_filter | 过滤列表,返回满足谓词的元素 |
stdlib.reduce | S_reduce | 对列表做归约,返回累积结果 |
stdlib.clamp | S_clamp | 将值限制在 [min, max] 区间 |
stdlib.lerp | S_lerp | 线性插值:lerp(a, b, t) |
stdlib.sign | S_sign | 返回数值符号(-1/0/1) |
stdlib.round | S_round | 四舍五入到整数(或指定位数) |
stdlib.class | S_class | 辅助:定义/创建类(表 + 元方法) |
stdlib.compress | S_zstd_compress | |
stdlib.decompress | S_zstd_decompress | |
stdlib.version | S_zstd_version |
stdlib.zstd 复用独立 zstd.dll 后端(C-ABI soup_zstd_*),提供压缩/解压/版本查询。
| API | 实现 | 说明 |
|---|---|---|
std.zstd.compress | S_zstd_compress | std.zstd.compress(data, level?):用 zstd 压缩字符串,返回压缩后的二进制串(level 默认 3) |
std.zstd.decompress | S_zstd_decompress | std.zstd.decompress(blob):解压 zstd 压缩串,返回原始数据;失败报错 |
std.zstd.version | S_zstd_version | std.zstd.version():返回 zstd 后端版本串(如 'zstd-rs-0.13') |
示例
local std = require "stdlib"
print(std.zstd.version()) -- "zstd-rs-0.13"
local raw = "hello soup " .. string.rep("z", 4096)
local blob = std.zstd.compress(raw, 3) -- 二进制串
local back = std.zstd.decompress(blob)
assert(back == raw)
stdlib.result 即独立 result 模块(Ok/Err 与错误传播),两者 API 完全一致。示例:
local std = require "stdlib" local r = std.result.ok(42) if r:is_ok() then print(r:unwrap()) end -- 42← 返回模块索引