我不明白该错误意味着什么,但我认为绝对路径中的包和供应商路径中的包之间很混乱。怎样才能让它不混淆呢?# 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个赞
该错误意味着这两种类型虽然相同,但由于它们位于不同的包中,因此被视为不同的。要使代码正常工作,您可以oss
从github.com/terraform-providers/terraform-provider-alicloud/vendor/...
路径导入。或者让您的应用程序供应商同时提供connectivity
和oss
。
翻阅古今
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,即使它们具有相同的名称(但来自不同的包)。
- 2 回答
- 0 关注
- 100 浏览
添加回答
举报
0/150
提交
取消