gpt4 book ai didi

arrays - 如何在 Go 中将结构添加到结构数组

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

在 golang 中,我试图制作一个消息数组,并能够轻松地将新“对象”添加到数组中。

type Message struct {
Name string
Content string
}

var Messages = []Message{
{
Name: "Alice",
Content: "Hello Universe",
},{
Name: "Bob",
Content: "Hello World",
},
}

func addMessage(m string) {
var msg = new(Message)
msg.Name = "Carol"
msg.Content = m
Messages = append(Messages, msg)
}

构建时出现错误:

cannot use msg (type *Message) as type Message in append

为什么 append() 不起作用(正如我对 JavaScript 的 array.concat() 的预期),或者 new()不工作?

欢迎任何其他关于如何改进此代码的提示,因为我显然是 Go 的新手。

最佳答案

改变这 3 行

var msg = new(Message)
msg.Name = "Carol"
msg.Content = m

msg := Message{
Name: "Carol",
Content: m,
}

一切都应该正常。 new 创建指向 Message 的指针。您的 slice 不是消息指针的 slice ,而是消息的 slice 。

关于arrays - 如何在 Go 中将结构添加到结构数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38449863/

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