假设一个项目的布局如下:
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 下面的子包访问,不能被其他外部代码访问。
1
kidlj 2021-08-03 16:11:12 +08:00 1
|
3
pabupa 2021-08-03 17:46:10 +08:00
一整个项目有一个 internal 就行,,不然代码提示的时候,选起来麻烦。
|
4
labulaka521 2021-08-03 17:54:43 +08:00
最好别用 pkg
|
5
feelinglucky 2021-08-03 18:49:04 +08:00
|
6
abccccabc 2021-08-04 09:53:04 +08:00
楼主,你最终是怎样处理的?我也想学习一下,看英文文档真是头疼。
|
7
joesonw 2021-08-04 10:28:22 +08:00
@feelinglucky pkg 在 go 里就是放公用库的地方. 不过是 go standard layout 还是知名项目, 如 kubernetes 皆是如此.
|
8
securityCoding 2021-08-04 16:58:57 +08:00
|