Was Ihnen der PHP-Editor Xinyi heute vorstellen wird, ist die Funktion, die Int-Slices in benutzerdefinierte Int-Slice-Zeigertypen in der Go-Sprache umwandelt. In der Go-Sprache ist Slice ein sehr häufig verwendeter Datentyp, der die Anzahl der Elemente dynamisch erhöhen oder verringern kann. Manchmal müssen wir ein Slice für den Betrieb in einer Funktion in einen benutzerdefinierten Slice-Zeigertyp konvertieren. In diesem Artikel wird detailliert beschrieben, wie diese Konvertierung durchgeführt wird, und Beispielcode als Referenz bereitgestellt. Ich glaube, dass jeder durch das Studium dieses Artikels ein tieferes Verständnis für die Verwendung von Slices in der Go-Sprache erlangen wird.
Ich möchte ein Stück von int als Eingabe für den Konstruktor verwenden und einen Zeiger auf die ursprüngliche Liste zurückgeben und in meinen externen benutzerdefinierten Typ (type intlist []int
) umwandeln.
Ich kann das tun:
type intlist []int func newintlistptr(ints []int) *intlist { x := intlist(ints) return &x }
Aber ich kann das nicht tun:
type IntList []int func NewIntListPtr(ints []int) *IntList { return &ints } // or this for that matter: func NewIntListPtr(ints []int) *IntList { return &(IntList(ints)) } // or this func NewIntListPtr(ints []int) *IntList { return &IntList(*ints) } // or this func NewIntListPtr(ints *[]int) *IntList { return &(IntList(*ints)) }
Gibt es einen Satz, der dies erreichen kann?
Sie tun Folgendes:
func NewIntListPtr(ints []int) *IntList { return (*IntList)(&ints) }
Das obige ist der detaillierte Inhalt vonFunktion in Go, die ein Int-Slice in einen benutzerdefinierten Int-Slice-Zeigertyp konvertiert. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!