Heim > Backend-Entwicklung > Golang > Funktion in Go, die ein Int-Slice in einen benutzerdefinierten Int-Slice-Zeigertyp konvertiert

Funktion in Go, die ein Int-Slice in einen benutzerdefinierten Int-Slice-Zeigertyp konvertiert

王林
Freigeben: 2024-02-08 21:33:09
nach vorne
549 Leute haben es durchsucht

Go 中将 int 切片转换为自定义 int 切片指针类型的函数

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.

Frageninhalt

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
}
Nach dem Login kopieren

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))
}
Nach dem Login kopieren

Gibt es einen Satz, der dies erreichen kann?

Lösung

Sie tun Folgendes:

func NewIntListPtr(ints []int) *IntList {
    return (*IntList)(&ints)
}
Nach dem Login kopieren

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!

Verwandte Etiketten:
Quelle:stackoverflow.com
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage