Ce que l'éditeur PHP Xinyi vous présentera aujourd'hui est la fonction qui convertit les tranches int en types de pointeurs de tranche int personnalisés en langage Go. Dans le langage Go, slice est un type de données très couramment utilisé qui peut augmenter ou diminuer dynamiquement le nombre d'éléments. Parfois, nous devons convertir une tranche en un type de pointeur de tranche personnalisé pour une opération dans une fonction. Cet article décrira en détail comment réaliser cette conversion et donnera un exemple de code pour référence. En étudiant cet article, je pense que tout le monde comprendra mieux l'utilisation des tranches dans le langage Go.
Je souhaite prendre une tranche de int comme entrée du constructeur et renvoyer un pointeur vers la liste d'origine, en transtypant vers mon type personnalisé externe (type intlist []int
).
Je peux faire ça :
type intlist []int func newintlistptr(ints []int) *intlist { x := intlist(ints) return &x }
Mais je ne peux pas faire ça :
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)) }
Existe-t-il une phrase qui peut y parvenir ?
Vous faites ceci :
func NewIntListPtr(ints []int) *IntList { return (*IntList)(&ints) }
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!