Warum werden Änderungen, die über eine Methode an einer Struktur vorgenommen wurden, nicht beibehalten?
Ich versuche zu verstehen, warum der folgende Testcode nicht wie erwartet funktioniert:
package main
import (
"fmt"
"strings"
)
type Test struct {
someStrings []string
}
func (this Test) AddString(s string) {
this.someStrings = append(this.someStrings, s)
this.Count() // will print "1"
}
func (this Test) Count() {
fmt.Println(len(this.someStrings))
}
func main() {
var test Test
test.AddString("testing")
test.Count() // will print "0"
}
Dies würde drucken:
"1"
"0"
Bedeutet, dasssomeStrings
ist anscheinend modifiziert ... und dann ist es nicht.
Weiß jemand woran das liegen könnte?