普贤教程 › 进阶教程
标准库概览
标准库随语言分发,共 27 个模块,全部是 .px 源码(可读、可改、可抄)。用 import std.名称 引入。
按用途分类
文本与数据
| 模块 | 关键函数 | 用途 |
|---|---|---|
std.strings | index_of last_index_of count_of | 子串定位(语言内置里没有这些原语) |
std.collections | unique flatten zip_lists chunk group_by sort_by | 列表处理的那几个常用动作 |
std.jsonx | json_pretty json_pretty_indent | 把紧凑 JSON 变成带缩进的可读格式 |
std.go_json / go_json_indent / go_json_scan | 数字加宽、缩进、扫描 | 与 Go 的 encoding/json 行为对齐 |
std.go_strings | go_index go_slice | 按字节下标操作(与 Go 语义一致) |
std.html | HTML 节点栈、转义 | 拼 HTML、做简单的模板渲染 |
std.pxml | XML 解析 | 读配置文件、解析 RSS |
std.yaml / yamlx / yaml_lex / yaml_lines | yaml_parse 等 | YAML 读写(Ma 的配置文件就是 YAML) |
std.semver | sv_parse sv_cmp sv_satisfies | 版本号比较、范围匹配 |
网络
| 模块 | 关键函数 | 用途 |
|---|---|---|
std.url | url_query_escape url_parse | URL 编解码、查询串解析 |
std.smtp | 构造邮件 | 拼 multipart 邮件体(配 TLS 发送) |
std.multipart | mp_encode mp_boundary | 文件上传的表单编码 |
std.cookiejar | cj_new cj_update cj_header | HTTP Cookie 管理 |
std.webroute | wr_parse_file | 「文件即路由」的命名解析 |
系统、文件与图像
| 模块 | 关键函数 | 用途 |
|---|---|---|
std.path | path_join | 拼路径,避免手写斜杠 |
std.io | write_all write_line | 分块写文件描述符 |
std.edge | GPIO / I2C / 串口 / PWM | 边缘设备(树莓派、工控板)直接操作硬件 |
std.png | PNG 编解码 | 生成或读取 PNG |
std.gfx | 画布、线、文字 | 画验证码、图表(注意性能,见性能一章) |
std.time_go | go_format go_rfc3339 go_date | Go 风格的时间格式化 |
std.lunar | 农历转换 | 农历 / 节气 |
用法示例
px
import std.collections import std.jsonx import std.path var xs = [3, 1, 2, 1, 3] print(str(unique(xs))) print(str(chunk([1, 2, 3, 4, 5], 2))) print(json_pretty({"a": [1, 2], "b": {"c": true}})) print(path_join("/data/www", "px_dzty_club"))
text
[3, 1, 2] [[1, 2], [3, 4], [5]] { "a": [ 1, 2 ], "b": { "c": true } } /data/www/px_dzty_club
生态包(registry)
标准库之外还有 195 个包,覆盖数据库、加密、图像、二维码、日志、测试等。常用的几个:
| 包 | 能力 |
|---|---|
mysql / pg / redis / mongodb | 数据库客户端 |
jwt / bcrypt / passhash / totp | 鉴权与密码学 |
captcha / qrcode / barcode | 验证码与码制 |
smtp / pop3 / imap | 邮件收发 |
log / metrics / retry / sched | 可观测性与调度 |
actor / workerpool / concurrent_map / semaphore | 并发封装 |
validator / idcard / pinyin / cnnum | 国内业务常用校验与转换 |
testkit / quickcheck / mock | 测试 |
uuid / nanoid / ulid / snowflake | ID 生成 |
deploy / config / dotenv / tempfile | 工程配套 |
安装与使用见 包管理与 registry。
标准库是源码不确定某个函数怎么用,直接打开
/usr/share/puxian/stdlib/xxx.px 看实现——注释里通常写着动机、边界和与 Go 的对照。这比查文档快。