golang中的类型不一致,无法使用<;类型>;as<;类型>;

golang中的类型不一致,无法使用<;类型>;as<;类型>;,go,goland,Go,Goland,我正在用Go编写一个应用程序,它使用Logger对象类型。 在其中,我使用了另一个使用相同记录器对象类型的应用程序: App1: import "gitlab.sio.com/go/zlog" var logger = zlog.New(append(opts, zlog.App(c.Name, typ, version), zlog.Env(c.Environment), )...) .... router.GET("/get", GetHandler(logger)) ..

我正在用Go编写一个应用程序,它使用Logger对象类型。
在其中,我使用了另一个使用相同记录器对象类型的应用程序:
App1:

import "gitlab.sio.com/go/zlog"

var logger = zlog.New(append(opts,
    zlog.App(c.Name, typ, version),
    zlog.Env(c.Environment),
)...)
....
router.GET("/get", GetHandler(logger))
....
func GetHandler(logger *zlog.Logger){
    ....
    mdl, _ := security.New(*logger)
    ....
}
App2(安全库中的security.New):

我在这条线上看到的错误

mdl,\:=security.New(*logger)

是:

无法将*logger(键入“gitlab.sio.com/go/furtif/vendor/gitlab.sio.com/go/zlog.logger)用作security.New参数中的“gitlab.sio.com/go/security/vendor/gitlab.sio.com/go/zlog.logger”类型


您需要修复导入语句,以便正确地指出导入类型所属的位置。阅读错误消息。

您需要修复导入语句,以便正确地将导入类型指向它们应该属于的位置。阅读错误消息。

问题是由于在两个不同的供应商文件夹中导入了相同的库。
如果您试图将应用程序2仅用作库,则删除应用程序2中的供应商文件夹将解决此问题。

此问题是由于在两个不同的供应商文件夹中导入了相同的库所致。
如果您试图将应用程序2仅用作库,删除应用程序2中的供应商文件夹将解决此问题。

此错误发生在我身上,因为我在同一个包中多次声明了一个类型。

此错误发生在我身上,因为我在同一个包中多次声明了一个类型。

请仔细阅读此消息:这些是不同的类型。一个来自包
../furtif/vendor…
,另一个来自
../security/vendor/..
。修正你的卖主。仔细阅读信息:这些是不同的类型。一个来自包
../furtif/vendor…
,另一个来自
../security/vendor/..
。修复你的供应商。这不是有争议的进口声明。这是因为GOPATH中有两个单独出售的同一个库的副本-似乎他们导入了一个使用出售的库,这总是一件坏事™.这不是有争议的进口声明。这是因为GOPATH中有两个单独出售的同一个库的副本-似乎他们导入了一个使用出售的库,这总是一件坏事™.
package security

import "gitlab.sio.com/go/zlog"

Middleware struct {
    log             zlog.Logger
}

func New(log zlog.Logger){
...
mdw := Middleware{}
mdw.log = log
}