为了账号安全,请及时绑定邮箱和手机立即绑定

如何让golang不混淆供应商导入和绝对导入?

如何让golang不混淆供应商导入和绝对导入?

Go
忽然笑 2023-07-26 13:25:32
我不明白该错误意味着什么,但我认为绝对路径中的包和供应商路径中的包之间很混乱。怎样才能让它不混淆呢?# github.com/GoogleCloudPlatform/terraformer/providers/alicloudproviders/alicloud/dum.go:10:35: cannot use func literal (type func(*"github.com/aliyun/aliyun-oss-go-sdk/oss".Client) (interface {}, error)) as type func(*"github.com/terraform-providers/terraform-provider-alicloud/vendor/github.com/aliyun/aliyun-oss-go-sdk/oss".Client) (interface {}, error) in argument to client.WithOssClient这是最小的可重现代码package dumimport (    oss "github.com/aliyun/aliyun-oss-go-sdk/oss"    "github.com/terraform-providers/terraform-provider-alicloud/alicloud/connectivity")func dum() error {    client := connectivity.AliyunClient{}    raw, err := client.WithOssClient(func(ossClient *oss.Client) (interface{}, error) {        return ossClient.ListBuckets()    })    if err != nil {        return err    }    println(raw)    return nil}编辑:解决方案go mod vendorgo build -v
查看完整描述

2 回答

?
偶然的你

TA贡献1841条经验 获得超3个赞

该错误意味着这两种类型虽然相同,但由于它们位于不同的包中,因此被视为不同的。要使代码正常工作,您可以ossgithub.com/terraform-providers/terraform-provider-alicloud/vendor/...路径导入。或者让您的应用程序供应商同时提供connectivityoss



查看完整回答
反对 回复 2023-07-26
?
翻阅古今

TA贡献1780条经验 获得超5个赞

编译器无法将“github.com/aliyun/aliyun-oss-go-sdk/oss”.Client替换为github.com/terraform-providers/terraform-provider-alicloud/vendor/github.com/aliyun/aliyun-oss- go-sdk/oss".Client,即使它们具有相同的名称(但来自不同的包)。



查看完整回答
反对 回复 2023-07-26
  • 2 回答
  • 0 关注
  • 93 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信