我刚刚开始在GoLang中执行一些“严肃的”代码,并且我试图使用在新项目中使用一些常见功能构建的自定义utils库。我的一种常见库方法返回了我要在外部项目上使用的AWS开发工具包会话结构的实例。
我将dep用于我的项目依赖项,并以相同的方式将(项目和库)SDK导入:
import "github.com/aws/aws-sdk-go/aws/session"
但是,编译器抱怨我在库方法中返回的Session结构与我在项目中需要的Session接口不同。
sess, err := myawsutils.NewSession()
s3Client := s3.New(sess)
*session.Session does not implement "gitlab.com/xyz/storage-sls.xyz.com/api/go/vendor/github.com/aws/aws-sdk-go/aws/client".ConfigProvider (wrong type for ClientConfig method)
have ClientConfig(string, ...*"gitlab.com/xyz/golang-sls-utils/vendor/github.com/aws/aws-sdk-go/aws".Config) "gitlab.com/xyz/golang-sls-utils/vendor/github.com/aws/aws-sdk-go/aws/client".Config
want ClientConfig(string, ...*"gitlab.com/xyz/storage-sls.xyz.com/api/go/vendor/github.com/aws/aws-sdk-go/aws".Config) "gitlab.com/xyz/storage-sls.xyz.com/api/go/vendor/github.com/aws/aws-sdk-go/aws/client".Config
理想情况下,我想在多个项目中共享对相同结构的引用。我肯定缺少该语言工作和编译方式的一些基本核心概念。感谢任何帮助。谢谢!