Fonctions variadiques en Go

GolangGolangBeginner
Pratiquer maintenant

This tutorial is from open-source community. Access the source code

💡 Ce tutoriel est traduit par l'IA à partir de la version anglaise. Pour voir la version originale, vous pouvez cliquer ici

Introduction

En Go, une fonction qui peut prendre un nombre variable d'arguments est appelée une fonction variadique. Ce laboratoire vous permettra de tester votre compréhension de l'utilisation des fonctions variadiques en Go.


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL go(("Golang")) -.-> go/FunctionsandControlFlowGroup(["Functions and Control Flow"]) go/FunctionsandControlFlowGroup -.-> go/functions("Functions") subgraph Lab Skills go/functions -.-> lab-15528{{"Fonctions variadiques en Go"}} end

Fonctions variadiques

Dans ce laboratoire, vous devez implémenter une fonction nommée max qui prend un nombre arbitraire d'entiers en arguments et renvoie la valeur maximale.

  • La fonction max devrait prendre un nombre arbitraire d'entiers en arguments.
  • La fonction max devrait renvoyer la valeur maximale des entiers passés en arguments.
$ go run variadic-functions.go
[1 2] 3
[1 2 3] 6
[1 2 3 4] 10

## Un autre aspect clé des fonctions en Go est leur capacité
## à former des fermetures, que nous examinerons ensuite.

Voici le code complet ci-dessous :

// [_Variadic functions_](https://en.wikipedia.org/wiki/Variadic_function)
// peuvent être appelées avec un nombre quelconque d'arguments de fin.
// Par exemple, `fmt.Println` est une fonction variadique commune.

package main

import "fmt"

// Voici une fonction qui prendra un nombre arbitraire
// d'`int` en arguments.
func sum(nums...int) {
	fmt.Print(nums, " ")
	total := 0
	// Dans la fonction, le type de `nums` est
	// équivalent à `[]int`. Nous pouvons appeler `len(nums)`,
	// l'itérer avec `range`, etc.
	for _, num := range nums {
		total += num
	}
	fmt.Println(total)
}

func main() {

	// Les fonctions variadiques peuvent être appelées de la manière habituelle
	// avec des arguments individuels.
	sum(1, 2)
	sum(1, 2, 3)

	// Si vous avez déjà plusieurs arguments dans un slice,
	// appliquez-les à une fonction variadique en utilisant
	// `func(slice...)` comme ceci.
	nums := []int{1, 2, 3, 4}
	sum(nums...)
}

Sommaire

Dans ce laboratoire, vous avez appris à utiliser les fonctions variadiques en Go. Vous avez implémenté une fonction nommée max qui prend un nombre arbitraire d'entiers en arguments et renvoie la valeur maximale.