gpt4 book ai didi

go - 如何将 []interface{} 转换为自定义类型 - Go lang?

转载 作者:IT王子 更新时间:2023-10-29 00:40:41 24 4
gpt4 key购买 nike

我开始在 Go 中工作。有以下代码

 type Transaction struct{
Id string `bson:"_id,omitempty"`
TransId string
}

func GetTransactionID() (id interface{}, err error){
query := bson.M{}
transId, err := dbEngine.Find("transactionId", WalletDB, query)
//transId is []interface{} type
id, err1 := transId.(Transaction)
return transId, err
}

寻找

package dbEngine 
func Find(collectionName,dbName string, query interface{})(result []interface{}, err error){
collection := session.DB(dbName).C(collectionName)
err = collection.Find(query).All(&result)
return result, err
}

问题

错误:无效类型断言:transId.(string)(非接口(interface)类型 []interface {} 在左边)

[]interface{} 更改为 Transaction 类型的任何建议。

最佳答案

您不能将一段 interface{} 转换为任何单个结构。您确定您真的不需要一部分 Transaction(即 []Transaction 类型)吗?如果是这样,你将不得不遍历它并转换每一个:

for _, id := range transId {
id.(Transaction) // do something with this
}

关于go - 如何将 []interface{} 转换为自定义类型 - Go lang?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23387155/

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