首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何使高丽不混淆供应商进口与绝对进口?

如何使高丽不混淆供应商进口与绝对进口?
EN

Stack Overflow用户
提问于 2019-09-16 12:53:12
回答 2查看 227关注 0票数 3

我不明白这个错误意味着什么,但我认为它在绝对路径和供应商路径中的包之间出现了混淆。我怎么才能不把它弄糊涂呢?

代码语言:javascript
运行
复制
# 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

以下是最小可复制代码

代码语言:javascript
运行
复制
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
}

编辑:解决方案

代码语言:javascript
运行
复制
go mod vendor
go build -v
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2019-09-18 04:53:07

这个错误意味着这两种类型虽然是等价的,因为它们生活在单独的包中,但它们被视为不同的类型。要使代码工作,可以从oss路径导入github.com/terraform-providers/terraform-provider-alicloud/vendor/...。或者让你的应用程序供应商同时使用connectivityoss

票数 1
EN

Stack Overflow用户

发布于 2019-09-17 02:50:03

编译器不能用"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,,即使它们具有相同的名称(但来自不同的包)。

票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57957331

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档