假设一个项目的布局如下:
pkg/
    cache/
          redis/redis.go       // package xxx/pkg/cache/redis
          memory/memory.go     // package xxx/pkg/cache/memory
          utils.go             // package xxx/pkg/cache
go.mod
main.go
在 redis.go 和 memory.go 中有些共性的方法或者功能,提取出来放在 utils.go 中,以大写字母开头的函数。
我希望 utils.go 中的代码只能被 pkg/cahce 下面的子包访问,不能被其他外部代码访问。
|  |      1kidlj      2021-08-03 16:11:12 +08:00  1 | 
|  |      3pabupa      2021-08-03 17:46:10 +08:00 一整个项目有一个 internal 就行,,不然代码提示的时候,选起来麻烦。 | 
|  |      4labulaka521      2021-08-03 17:54:43 +08:00 最好别用 pkg | 
|  |      5feelinglucky      2021-08-03 18:49:04 +08:00 | 
|  |      6abccccabc      2021-08-04 09:53:04 +08:00 楼主,你最终是怎样处理的?我也想学习一下,看英文文档真是头疼。 | 
|      7joesonw      2021-08-04 10:28:22 +08:00 @feelinglucky pkg 在 go 里就是放公用库的地方. 不过是 go standard layout 还是知名项目, 如 kubernetes 皆是如此. | 
|      8securityCoding      2021-08-04 16:58:57 +08:00 |