主要观点:请求 Go 包作者不要用普通名词命名包,以避免变量名与包名冲突等问题,并介绍了两种解决方法,一是添加单词,如将rate
改为ratelimit
;二是对内部包添加字母前缀,如pclient
等。
关键信息:
- 以
time/rate
包为例说明用普通名词命名包的坏处,如变量名会优先于包名,导致包在定义上下文后无法被引用。 - 介绍修复方法,添加单词可使名字更具描述性且不易与变量名冲突,如将
rate
改为ratelimit
。 - 列举了一些实际项目中用普通名词命名的包,如
./client
等,并指出这种命名方式的弊端。 - 对于内部包,可添加与项目名相关的字母前缀来避免用普通名词命名,如
pclient
等,虽会遭 Go 纯粹主义者反感,但对内部包方便改名。
重要细节:
- Go 中包的导出名称用包名引用,如
rate.Limiter
。 - 变量名在 Go 中是驼峰式,
ratelimit
不会与变量名冲突。 - 内部包改名方便且不影响他人,公共包不应这样做。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。