go - 了解 GO 变量赋值

标签 go

我是 GO 的新手,正在尝试使用 aws-sdk 构建函数 我有这样的东西

    input := &rds.CreateDBClusterSnapshotInput{
        // removed for brevity
    }

    result, err := svc.CreateDBClusterSnapshot(input)
    if err != nil {
        // removed for brevity
    }

    input = &rds.ModifyDBClusterSnapshotAttributeInput{
        // removed for brevity
    }

当我尝试构建时,出现此错误

cannot use &rds.ModifyDBClusterSnapshotAttributeInput literal (type *rds.ModifyDBClusterSnapshotAttributeInput) as type *rds.CreateDBClusterSnapshotInput in assignment

我的作业有什么问题?

最佳答案

正如@Sergio Tulentsev 所指出的,您正在将 ModifyDBClusterSnapshotAttributeInput 类型分配给变量 input,即 CreateDBClusterSnapshotInput 类型。

会有一些解决方案来处理这个问题,但最简单的方法是为每个类型结构创建一个方法,为 input 返回一个兼容的类型,就像这样;

func (createInput CreateDBClusterSnapshotInput) ReturnInput() {
    return createInput.input // assuming that there are a input type your create
}

如果您不想为每个结构创建一个具有相同功能的方法,您可以创建一个基类型,让您的两个结构扩展该类型,然后为该基类型构建一个方法。

关于go - 了解 GO 变量赋值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57540983/

相关文章:

mongodb - MongoDB/golang mgo 驱动程序的这两个 import 语句中哪一个是正确的?

go - 对多级返回的 panic

string - 在 Go 中生成长随机字符串的最快方法是什么?

testing - 在仅适用于某些版本的 golang 中运行测试

Golang 和 JWT - 简单注销

arrays - 如何将 JSON 数组建模为 protobuf 定义

go - 如何始终通过无效 key 类型错误生成 JWT token

Golang 与 Hoare 的 CSP-Language 的主要区别

string - 如何在 Golang 中按字母顺序查找下一个更大的字符串?

elasticsearch - go + elastigo panic : runtime error: index out of range