用途:为 Go 模块化架构生成纯映射函数,用于各层之间的结构体转换,例如 HTTP 请求 DTO 转用例输入、持久化模型转 HTTP 响应 DTO,以及任意两个结构体表示之间的转换,包括结构体切片转换。
主要能力:按 To 前缀约定生成公开映射函数,支持单输入、多输入、返回单个输出或输出加 error;支持切片变体(如 ToXxxList);可提取私有辅助函数复用子映射逻辑。文件位于 internal/modules/<module>/mapper/,每个领域概念一个文件,命名为 <name>_mapper.go。
使用方式:函数签名遵循 func ToXxx(input InputType) OutputType、func ToXxx(input InputType) (OutputType, error) 或 func ToXxx(a TypeA, b TypeB) OutputType。公开函数以 To 开头,私有辅助函数以小写 to 开头。创建映射文件后运行 make lint 检查代码质量,运行 make nilaway 做静态分析。
限制:映射器只包含函数,不含结构体、接口、构造函数或端口文件;不使用 context.Context,不做 I/O,无日志、数据库调用或外部依赖;仅允许一个返回值,error 只能作为第二个返回值,且仅在转换可能失败(如解析或转换错误)时使用;函数不加注释。
适用场景:模块内任何结构体到结构体的转换,如 HTTP 请求 DTO 到用例输入、持久化模型到响应 DTO、集合类型转换等。官方未提供安装命令、收费或平台信息。