Avatar ·

如何在Go中导入和使用不同但同名的包?

大家好!我是Go新手,在导入包时遇到了问题。我的项目中使用两个库:一个用于操作Redis(`github.com/go-redis/redis`),另一个用于操作REST API(`github.com/go-resty/resty`)。它们分别导出名为`redis`和`resty`的结构体和函数,这没问题。但当我尝试使用两个同名包时,比如`crypto/md5`和第三方包`github.com/user/md5`,问题就出现了。 我写了这样的代码: ```go package main import ( "crypto/md5" "github.com/user/md5" ) func main() { h := md5.New() // ... } ``` 编译器报错:`md5 redeclared as imported package name`。我知道Go不允许直接导入两个同名包。如何正确解决这个问题?是否需要在导入时重命名其中一个包?或者有其他方法?请告诉我如何导入。