我在Go中编写一个使用Logger对象类型的应用程序。
在其中我使用另一个使用相同记录器对象类型的应用程序:
App1的:
val arr: Array[Int] = (for (i <- 0 to 4) yield scala.io.StdIn.readInt()).toArray
App2(security.New from security lib):
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)
....
}
我在线上的错误
mdl,_:= security.New(* logger)
是:
不能使用* logger(输入“gitlab.sio.com/go/furtif/vendor/gitlab.sio.com/go/zlog".Logger”)作为“gitlab.sio.com/go/security/vendor/” gitlab.sio.com/go/zlog".Logger in security ofNew .New
答案 0 :(得分:2)
您需要修复导入语句,以正确指出导入类型应该属于的位置。阅读错误消息。
答案 1 :(得分:2)
问题是由于在两个不同的供应商文件夹中导入了相同的库。 如果您尝试仅将应用程序2用作库,则在应用程序2中删除供应商文件夹将解决此问题。
答案 2 :(得分:0)
这个错误发生在我身上,因为我在同一包中声明了一个类型多次。
答案 3 :(得分:-3)
您应该按值发送Logger参数!您正在发送Logger的指针(通过引用)
如果您移除*
后面的logger
,它应该有效!
mdl, _ := security.New(*logger)
- &GT;
mdl, _ := security.New(logger)