Golang导入重名client包冲突处理:如何重命名后同时使用两个包
解决方案
Go 语言原生支持为导入的依赖包自定义别名,仅需在冲突的包路径前添加自定义标识符即可解决同名包声明冲突,修改后的导入段示例如下:
package main import ( "context" "encoding/json" "fmt" "io" "os" // 为HewlettPackard的docker client包自定义别名 hpDockerClient "github.com/HewlettPackard/docker/api/client" "github.com/docker/docker/api/types" "github.com/docker/docker/api/types/container" // 也可为官方docker client包自定义别名 officialDockerClient "github.com/docker/docker/client" )
调用方式
后续代码中分别使用别名调用对应包的方法即可:
- 调用HewlettPackard client包方法:
hpDockerClient.方法名() - 调用官方Docker client包方法:
officialDockerClient.方法名()
如果某一个包的使用频率更高,也可以仅给使用频率低的包加别名,另一个保留默认的client包名,减少现有代码的修改量。
内容的提问来源于stack exchange,提问作者Keval Bhogayata
相关产品推荐
相关产品推荐

