Heim  >  Artikel  >  Backend-Entwicklung  >  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

王林
王林nach vorne
2024-02-08 21:33:09490Durchsuche

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
}

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?

Lösung

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!

Stellungnahme:
Dieser Artikel ist reproduziert unter:stackoverflow.com. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen