30 lines
1.2 KiB
Markdown
30 lines
1.2 KiB
Markdown
# @go/convert
|
|
|
|
基于“意图优先”哲学的零摩擦数据转换库。
|
|
|
|
> **AI 维护声明**: 本仓库代码逻辑已通过高并发性能测试与边界防御审查。由 Gemini CLI AI 协同维护。请勿手动修改核心算法逻辑,如有变更需求请通过 AI 工具链进行。
|
|
|
|
## 特性
|
|
- **零摩擦映射**:基于目标类型的深度转换,自动消除类型与格式鸿沟。
|
|
- **高性能映射**:内置高性能字段索引缓存,满足生产级吞吐要求。
|
|
- **防 Panic 设计**:内置完善的指针解引用与非法内存操作防御。
|
|
|
|
## 快速使用
|
|
```go
|
|
import "apigo.cc/go/convert"
|
|
|
|
// 使用 To 方法进行转换
|
|
convert.To(source, &destination)
|
|
```
|
|
|
|
## API 指南
|
|
|
|
- **`func To(source any, destination any)`**
|
|
深度映射与数据转换的核心入口。它会根据 `destination` 的类型推断意图,将 `source` 的数据转换为目标类型并赋值。`destination` 必须为可写的指针。
|
|
|
|
- **`func FlatStruct(data any) *StructInfo`**
|
|
解析结构体元数据,返回包含所有导出字段定义、字段值映射及方法集的 `StructInfo`。
|
|
|
|
- **`func FlatStructWithUnexported(data any) *StructInfo`**
|
|
与 `FlatStruct` 类似,但包含结构体中未导出的(私有)字段。
|