4
Ich habe einen Typ-Alias für einen Slice. Und ich möchte die Scheibe anhängen können (oder Filter von der Scheibe), wenn die Scheibe ein Zeiger Empfänger:Wie an einen Slice-Zeiger-Empfänger angefügt werden
package main
import (
"fmt"
)
type itself []string
func (h itself) appendToItself(test string) {
h = append(h, test)
}
func main() {
h := itself{"1", "2"}
h.appendToItself("3")
fmt.Println(h, "<- how do I make it [1,2,3]")
}
Log:
[1 2] <- how do I make it [1,2,3]
wollte nur hinzufügen * warum * das ist erforderlich. Das Slice selbst enthält 3 Werte: einen Zeiger auf das darunterliegende Array, eine "Länge" und eine "Kapazität". Wenn Sie ein Segment übergeben, geben Sie eine Kopie dieser drei Werte ein. Die Funktion kann die Elemente im Schnitt weiterhin lesen und ändern, da sie den richtigen Zeiger hat. Sie kann jedoch die Länge nicht ändern, da sie mit einer Kopie dieser Felder arbeitet. Mit einem Zeiger kann die Funktion die Länge des Originals ändern. – DanRedux