golang 代码组织:我应该在哪里放置只与一个函数相关的自定义错误类型?

golang code organization: where should I put custom error types that are only relevant to one function?

我刚刚开始处理我的第一个 golang 项目,非常喜欢从函数返回自定义错误类型并在调用代码中使用类型断言来检查特定错误的想法。我发现这个解决方案比总是比较错误消息更清晰。

我唯一的问题是:您最好将这些自定义错误类型放在哪里?

假设许多自定义错误类型仅由一个实用程序函数使用(返回),它们是否应该与函数放在同一个包中?我应该以某种方式将它们分组吗?或者也许有更好的方法来做这种事情..

"Same package" 是我最初的想法。在某些情况下,将它们放在不同的包中是有意义的,但只有当它们合法地 "the same error" 来自多个包中的函数时,这些包中的 none 才是合乎逻辑的 "most owner".