Les pointeurs de fonction sont des variables dans Go qui pointent vers l'adresse mémoire d'une fonction, permettant de traiter des fonctions telles que des types de valeur. Lorsqu'il est passé en paramètre, il fournit un comportement dynamique : Définir le type de pointeur de fonction : func(*TypeName)ReturnType Passer le pointeur de fonction en tant que paramètre à la fonction pour implémenter différentes fonctions basées sur le pointeur de fonction (par exemple, trier les fonctions de comparaison )
Passer des pointeurs de fonction en tant que paramètres dans Go
Comprendre les pointeurs de fonction
Dans Go, un pointeur de fonction est une variable qui pointe vers une fonction. Il s'agit essentiellement d'un pointeur vers l'adresse mémoire de la fonction. Les pointeurs de fonction nous permettent de traiter les fonctions comme les autres types de valeurs.
Syntaxe des pointeurs de fonction
Le type de pointeur de fonction est défini par la syntaxe suivante :
func(*TypeName)ReturnType
Par exemple, le code suivant définit un pointeur vers une fonction qui reçoit un paramètre int et renvoie une valeur int :
type fnType func(int) int
Pointeur de fonction en tant que paramètres
Les pointeurs de fonction peuvent être transmis en tant que paramètres d'autres fonctions. Cela nous permet de fournir dynamiquement différents comportements aux fonctions.
Cas pratique : Fonction de tri
Considérons un scénario dans lequel un ensemble d'entiers doit être trié. Nous pouvons définir une fonction appelée sortInts
qui accepte une tranche d'entiers et un pointeur de fonction comme paramètres. Le pointeur de fonction spécifiera la fonction utilisée pour comparer et trier les entiers. sortInts
的函数,该函数接受一个整数切片和一个函数指针作为参数。函数指针将指定用于比较和排序整数的函数。
func sortInts(nums []int, compareFn fnType) { // 根据 compareFn 函数排序 nums }
我们可以在 main 函数中调用 sortInts
func main() { nums := []int{5, 2, 8, 3, 1} // 升序排序 sortInts(nums, func(a, b int) int { return a - b }) fmt.Println(nums) // [1 2 3 5 8] // 降序排序 sortInts(nums, func(a, b int) int { return b - a }) fmt.Println(nums) // [8 5 3 2 1] }
sortInts
dans la fonction principale et transmettre différentes fonctions de comparaison pour trier les tranches entières différemment. rrreeeConclusion
Les pointeurs de fonctions sont un outil puissant dans Go qui nous permet de créer du code dynamique et réutilisable. En comprenant la syntaxe des pointeurs de fonction et le mécanisme de transmission des pointeurs de fonction comme arguments, nous pouvons facilement implémenter des comportements et des algorithmes complexes. 🎜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!