Golang-Zeiger auf Zeiger als Funktionsparameter
Ich habe folgende Funktion:
func addCatsToMap(m map[string][]CatHouse, meowId int, treats Set, dog *Dog) {
//if (complicated thing) add Cat to m
}
woherSet
, die Art vontreats
ist eine Schnittstelle mit der folgenden Definition:
type Set interface {
Add(value string)
Contains(value string) (bool)
Length() (int)
RemoveDuplicates()
}
Frage:
Ist es wahr dassm
, treats
, unddog
sindals Referenz übergeben, undmeowId
Hat es den Wert kopiert?
Ich nehme an, dass:
m
ist Referenzübergabe, da es sich um eine Karte handeltdog
ist eine Struktur. Daher sollte ich den Zeiger übergeben, um ein Kopieren der Daten zu vermeiden