So fügen Sie eine struct in ein array von Strukturen in Go
In golang, den ich versuche zu machen, ein array von Nachrichten, und die Fähigkeit, ganz einfach eine neue "Objekt", um das array.
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)
}
Beim erstellen bekomme ich eine Fehlermeldung, die sagt:
nicht verwenden, msg (Typ *Nachricht) als Typ-Nachricht, in Anhängen
Warum ist append()
funktioniert nicht (wie ich erwarten von JavaScript array.concat()
), oder ist new()
funktioniert nicht?
Irgendwelche andere Tipps zur Verbesserung dieser code sind willkommen, da bin ich natürlich neue zu Gehen.
- Sehen Sie, wenn das hinzufügen ... nach msg hilft (stackoverflow.com/questions/8461462/...)
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ändern Sie diese 3 Zeilen
zu
und alles sollte funktionieren.
new
erstellt einen Zeiger aufMessage
. Ihre Scheibe ist keine Scheibe Nachricht Zeiger, sondern ein Stück Nachrichten.In Ihrem code
Messages
ist eine ScheibeMessage
geben, und Sie versuchen, fügen Sie einen ZeigerMessage
Typ (*Message
) zu.Können Sie fix Ihr Programm, indem Sie Folgendes tun:
Alternativ können Sie erklären
Messages
als eine Scheibe*Message
:Im oben genannten Fall, der
addMessage
wäre nicht erforderlich, keine änderungen. Aber Sie müssen sich ändernMessages
Zugang überall sonst.