Skip to content

Instantly share code, notes, and snippets.

@KaiserWerk
Last active November 17, 2020 18:25
Show Gist options
  • Save KaiserWerk/7b6d8b2ea2c79ccaa15150623d64c7d6 to your computer and use it in GitHub Desktop.
Save KaiserWerk/7b6d8b2ea2c79ccaa15150623d64c7d6 to your computer and use it in GitHub Desktop.
Why does this not work?
package main
import "fmt"
type myStruct struct {
id int
messages []Message
}
type Message struct {
MessageText string
}
func (s myStruct) addMessage(m Message) {
s.messages = append(s.messages, m)
}
func main() {
s1 := myStruct{
id: 1,
messages: make([]Message, 0),
}
m1 := Message{MessageText: "Hey"}
s1.addMessage(m1)
s1.addMessage(m1)
s1.addMessage(m1)
fmt.Println(s1.messages) // immer leer
}
@KaiserWerk
Copy link
Author

The error lies in the difference between a pointer receiver and a value receiver

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment