Les fonctions d'ordre supérieur Golang acceptent et renvoient des fonctions. Ils se répartissent en deux catégories : recevoir des fonctions en paramètres : traiter d'autres fonctions ou exécuter des programmes dynamiques. Fonctions de retour sous forme de valeurs de retour : créez et renvoyez des fonctions qui peuvent être stockées et exécutées ultérieurement.
Comprendre les fonctions d'ordre supérieur de Golang
Une fonction d'ordre supérieur dans Golang est une fonction qui peut accepter et renvoyer des fonctions en tant que paramètres ou renvoyer des valeurs. Cela offre un fort potentiel de réutilisabilité, d’abstraction et de maintenabilité du code.
Types de fonctions d'ordre supérieur
Il existe deux principaux types de fonctions d'ordre supérieur dans Golang :
Cas pratique
Accepter une fonction en paramètre
func mapFunc(fn func(int) int, nums []int) []int { result := make([]int, len(nums)) for i, num := range nums { result[i] = fn(num) } return result } func main() { nums := []int{1, 2, 3, 4, 5} squaredNums := mapFunc(func(num int) int { return num * num }, nums) fmt.Println(squaredNums) // 输出: [1 4 9 16 25] }
Ici, mapFunc
accepte une fonction fn
en paramètre et l'applique à chaque élément. fn
Place chaque élément au carré et renvoie un nouveau tableau. mapFunc
接受一个函数 fn
作为参数,并将它应用于每个元素。fn
将每个元素平方并返回一个新数组。
返回函数作为返回值
func genAdder(x int) func(int) int { return func(y int) int { return x + y } } func main() { add5 := genAdder(5) result := add5(10) fmt.Println(result) // 输出:15 }
在此示例中,genAdder
返回一个闭包函数,该闭包函数能够捕获并使用外部变量 x
。add5
genAdder
renvoie une fonction de fermeture qui capture et utilise la variable externe x
. La fonction add5
est appelée, prenant 10 comme argument et renvoyant 15. 🎜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!