Fonctionnalités avancées de la fonction Golang : Fermeture : capturez des variables dans la portée environnante pour transmettre des données. Fonction variadique : accepte un nombre variable de paramètres. Fonction anonyme : rappel ou fermeture unique et sans nom. Fonctions d'ordre supérieur : recevoir ou renvoyer des paramètres de fonction. Génériques : fonctions universelles, applicables à différents types de données (introduites dans Go 1.18).
Fonctionnalités avancées des fonctions Golang
Les fonctions sont un moyen puissant d'organiser votre code. Les fonctions Go fournissent un ensemble de fonctionnalités avancées qui vous aident à écrire du code plus modulaire et plus maintenable. Cet article présentera quelques fonctionnalités avancées utiles et démontrera leur application à travers des cas pratiques.
Closures
Les fermetures sont des fonctions qui capturent les variables de portée des fonctions environnantes. Il vous permet d'accéder à ces variables après l'exécution de la fonction. Ceci est utile lorsque vous devez transmettre des données à des fonctions ou des rappels imbriqués.
func outer() func() int { count := 0 return func() int { count++ return count } } func main() { f := outer() fmt.Println(f()) // 1 fmt.Println(f()) // 2 }
Fonctions variadiques
Les fonctions variadiques vous permettent de transmettre un nombre variable de paramètres. Ceci est utile lorsque vous devez traiter des données provenant de différentes sources.
func sum(numbers ...int) int { total := 0 for _, num := range numbers { total += num } return total } func main() { fmt.Println(sum(1, 2, 3, 4, 5)) // 15 }
Fonctions anonymes
Les fonctions anonymes sont des fonctions sans nom qui n'ont pas de récepteur explicite. Ils sont souvent utilisés pour définir facilement des rappels ou des fermetures ponctuelles.
func main() { // 定义一个匿名函数并传递给 sort.Slice sort.Slice([]int{1, 3, 2}, func(i, j int) bool { return []int{1, 3, 2}[i] < []int{1, 3, 2}[j] }) }
Fonctions d'ordre supérieur
Une fonction d'ordre supérieur est une fonction qui prend une fonction comme paramètre ou renvoie une fonction. Cela vous permet de créer un code plus flexible et personnalisable au moment de l'exécution.
func add10(x int) int { return x + 10 } func mapValues(nums []int, f func(int) int) []int { result := make([]int, len(nums)) for i, num := range nums { result[i] = f(num) } return result } func main() { nums := []int{1, 2, 3, 4, 5} fmt.Println(mapValues(nums, add10)) // [11 12 13 14 15] }
Generics
Les génériques vous permettent d'écrire des fonctions qui fonctionnent largement sur différents types de données. Les génériques ont été introduits dans Go 1.18.
func max[T comparable](a, b T) T { if a > b { return a } return b } func main() { fmt.Println(max(1, 2)) // 2 fmt.Println(max("hello", "world")) // world }
Voici quelques fonctionnalités avancées des fonctions Golang. Ces fonctionnalités peuvent considérablement améliorer l'efficacité de votre programmation et la qualité de votre code en prenant en charge les fermetures, les fonctions variadiques, les fonctions anonymes, les fonctions d'ordre supérieur et les génériques.
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!