Go 泛型适合容器、集合转换、类型安全的工具函数,不适合把业务差异硬塞进一个万能函数。

如果两个业务流程只是代码长得像,但规则、错误码、审计字段都不同,强行泛型化会降低可读性。后面需求变化时,泛型约束会越来越绕。

func Map[T any, R any](items []T, fn func(T) R) []R { ... }

我的习惯是:工具层可以泛型,业务层优先显式。业务代码重复三行不一定坏,隐藏规则差异才危险。

分类: Go 语言笔记 标签: Go 工程实践 API设计

评论

-- 评论已关闭 --

全部评论