2 回答
TA贡献1898条经验 获得超8个赞
正如您所注意到的,您不能将 []Greeting 类型用作 []Message 类型。因为它们不是同一类型。但是,有一种方法可以从一种类型转换为另一种类型,但它需要相同的类型。
例如,以下将起作用:
type Message struct {
From string `json:"from"`
To string `json:"to"`
Message string `json:"message"`
}
type Greeting struct {
From string `json:"from"`
To string `json:"to"`
Message string `json:"message"`
}
func main() {
mess := Message{"from", "to", "message"}
fmt.Println(reflect.TypeOf(mess))
// > Message
greet := Greeting(mess)
fmt.Println(reflect.TypeOf(greet))
// > Greeting
}
但是,它要求字段相同,并且 json 标签也是如此。
在您的情况下,遍历问候并将它们转换为消息将毫无问题地工作。
TA贡献1848条经验 获得超10个赞
根据姜 YD的评论,我替换了
relationShip := &RelationShip{Messages: greetings.Greetings}
具有以下内容:
var relationShip RelationShip
for _, g := range greetings.Greetings {
relationShip.Messages = append(
relationShip.Messages, Message{
To: g.To, From: g.From, Message: g.Greeting,
},
)
}
哪个做我想做的事。感谢您的反馈!
- 2 回答
- 0 关注
- 161 浏览
添加回答
举报