示例
env 库在源码仓库的 examples/ 目录下提供 11 个可运行示例。每个示例都是独立完整的 main 程序,从全局模式快速上手一路覆盖到安全特性与高级特性;所有示例均包含在常规构建(go build ./...)中。
运行方式
克隆源码仓库 github.com/cybergodev/env 后,在项目根目录执行 go run:
bash
git clone https://github.com/cybergodev/env.git
cd env
go run ./examples/01_quickstart/示例以 examples/data/ 下的相对路径引用共享配置文件,因此必须从项目根目录运行,否则数据文件路径无法解析。
共享数据文件
| 文件 | 格式 | 用途 |
|---|---|---|
config.env | dotenv | 扁平 KEY=value 键值对,含变量展开演示 |
config.json | JSON | 嵌套结构(app/db/cache/features) |
config.yaml | YAML | 与 JSON 同构,供结构体映射示例使用 |
示例索引
| 编号 | 目录 | 演示内容 | 相关文档 |
|---|---|---|---|
| 01 | 01_quickstart/ | 全局模式基础:Load 初始化、GetString/GetInt/GetBool/GetDuration 类型化读取、Lookup 存在性检查、Set 运行时写入 | 快速开始 |
| 02 | 02_loader_config/ | 实例模式与四套配置预设(Default/Development/Production/Testing)、自定义配置、显式生命周期控制 | Config、Loader |
| 03 | 03_type_access/ | 全部类型化读取方法:string、int、bool、duration、float、uint、slice 与 Lookup,含点号路径访问 | 快速开始 |
| 04 | 04_struct_mapping/ | env 标签结构体映射:嵌套结构体、envDefault 默认值与序列化 | 结构体映射 |
| 05 | 05_secure_values/ | SecureValue 生命周期:Close 与 Release 的区别、内存清零与 mlock 内存锁定 | 内存锁定、SecureValue |
| 06 | 06_audit_logging/ | JSON、Channel、Log 三种审计处理器,自动记录读取、写入与删除事件 | 审计日志 |
| 07 | 07_marshal_unmarshal/ | 格式转换:map 与字符串互转、结构体与 map 互转、多格式输出与往返转换 | 序列化 |
| 08 | 08_utilities/ | 工具函数:内省(Len/Keys/All)、键删除、脱敏与格式检测 | 多格式配置 |
| 09 | 09_error_handling/ | 哨兵错误(errors.Is)与类型化错误(errors.As),覆盖文件缺失与加载器已关闭场景 | 错误处理 |
| 10 | 10_concurrency/ | 并发读、并发写与读写混合访问,演示分片锁保证的并发安全 | 并发访问 |
| 11 | 11_advanced/ | 变量展开($VAR 与 ${VAR})、多文件加载覆盖、前缀过滤 | 变量展开 |
阅读建议
建议按编号顺序阅读:01–03 掌握全局与实例两种使用模式及类型化读取,04–07 熟悉结构体映射、敏感值保护与审计等生产特性,08–11 进阶到工具函数、错误处理与高级特性。每个示例都可直接 go run 运行验证,结合上方对应文档页面阅读效果更佳。