gpt4 book ai didi

go - 如何让golang不混淆 vendor 导入和绝对导入?

转载 作者:行者123 更新时间:2023-12-02 13:12:28 24 4
gpt4 key购买 nike

我不明白该错误的含义,但我认为绝对路径中的包和 vendor 路径中的包之间存在混淆。如何让它不混淆?

# github.com/GoogleCloudPlatform/terraformer/providers/alicloud
providers/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 dum

import (
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 vendor
go build -v

最佳答案

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

关于go - 如何让golang不混淆 vendor 导入和绝对导入?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57957331/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com