2026-04-22 10:45:41 +08:00
|
|
|
|
# Changelog: @go/convert
|
|
|
|
|
|
|
2026-05-04 09:57:17 +08:00
|
|
|
|
## [v1.0.5] - 2026-05-04
|
|
|
|
|
|
|
|
|
|
|
|
### Fixed
|
|
|
|
|
|
- **兼容性修复**:修复了由于 `cast` 库 API 变更导致的 `MustJSONBytes` 未定义错误,更新为 `MustToJSONBytes`。
|
|
|
|
|
|
|
2026-05-01 00:08:20 +08:00
|
|
|
|
## [v1.0.4] - 2026-04-30
|
|
|
|
|
|
|
|
|
|
|
|
### Changed
|
|
|
|
|
|
- **性能重构**:重构了反射字段匹配逻辑,引入 `sync.Map` 缓存结构体元数据,性能从 $O(N)$ 优化至 $O(1)$,Benchmark 结果约为 `1020 ns/op`。
|
|
|
|
|
|
- **匹配策略优化**:实现了“分层模糊匹配”,确保在保留“零摩擦”模糊匹配哲学的同时,适配更多不规范命名风格(如下划线、中划线、大小写混用)。
|
|
|
|
|
|
- **防御性强化**:重构了 `To` 函数中的指针解引用与初始化逻辑,移除了由于 `nil` 指针或非法嵌套引起的 Panic 风险,支持多级指针自动分配内存。
|
|
|
|
|
|
- **辅助函数优化**:将 `FlattenStruct` 的内部递归逻辑重构为高性能 Visitor 模式,增加了深度递归防护。
|
|
|
|
|
|
|
2026-04-22 10:45:41 +08:00
|
|
|
|
## [v1.0.0] - 2026-04-22
|
|
|
|
|
|
|
|
|
|
|
|
### Added
|
|
|
|
|
|
- **核心映射引擎**:基于反射的深度对象转换功能,支持 Struct, Map, Slice。
|
|
|
|
|
|
- **意图优先设计**:支持单值与切片的自动包装/解包转换。
|
|
|
|
|
|
- **智能字符串转换**:支持将 CSV 格式字符串 (`"a,b,c"`) 自动转为切片。
|
|
|
|
|
|
- **极致去摩擦匹配**:键名映射时自动忽略大小写及所有非字母数字字符(如 `_`, `-`, `#` 等)。
|
|
|
|
|
|
- **函数桥接器**:支持将一个函数转换为另一个签名的函数,并自动处理参数转换。
|
|
|
|
|
|
- **Parse 钩子**:支持通过 `ParseXxx` 方法定制特定字段的转换逻辑。
|
|
|
|
|
|
- **平展工具**:提供 `FlatStruct` 辅助函数用于获取结构体的扁平化字段信息。
|
|
|
|
|
|
- **接口兼容**:原生支持 `json.Unmarshaler` 和 `yaml.Unmarshaler`。
|