Fonctions volatiles en Golang

Les fonctions variadiques en Go vous permettent de passer un nombre variable d'arguments à une fonction. Cette fonctionnalité est utile lorsque vous ne savez pas à l'avance combien d'arguments vous allez passer. Une fonction variadique Golang  accepte plusieurs arguments du même type et peut être appelée avec n'importe quel nombre d'arguments, y compris aucun.

Fonctions volatiles en Golang

package main
import "fmt"

// Hàm Variadic tính tổng
func sum(nums ...int) int {
    total := 0
    for _, n := range nums {
        total += n
    }
    return total
}

func main() {
    fmt.Println("Sum of 1, 2, 3:", sum(1, 2, 3))
    fmt.Println("Sum of 4, 5:", sum(4, 5))
    fmt.Println("Sum of no numbers:", sum())
}

Résultat:

Sum of 1, 2, 3: 6
Sum of 4, 5: 9
Sum of no numbers: 0

Syntaxe:

func functionName(parameters ...Type) ReturnType {
    // Code
}

Dans la syntaxe ci-dessus :

  • parameters ...Typeindique que la fonction peut accepter un nombre variable d'arguments de type Type.
  • Vous pouvez accéder aux arguments d’une fonction sous forme de tranche.

Comment utiliser les fonctions incertaines dans Golang

Utilisation des fonctions variadiques

Lors de la définition d'une fonction variadique, vous spécifiez le type d'argument suivi d'une ellipse (...) comme dans l'exemple ci-dessus. À l’intérieur de la fonction, ces arguments peuvent être considérés comme une tranche.

Appel d'une fonction variadique

Vous pouvez appeler une fonction variadique avec n’importe quel nombre d’arguments, y compris zéro. Cette fonction traite les arguments comme une tranche.

Par exemple:

package main
import "fmt"

func sum(nums ...int) int {
    total := 0
    for _, n := range nums {
        total += n
    }
    return total
}

func main() {
    fmt.Println("Sum of 1, 2, 3:", sum(1, 2, 3))
    fmt.Println("Sum of 4, 5:", sum(4, 5))
    fmt.Println("Sum of no numbers:", sum())
}

Résultat:

Sum of 1, 2, 3: 6
Sum of 4, 5: 9
Sum of no numbers: 0

Fonction variadique avec différents paramètres

Vous pouvez également combiner des paramètres variadiques avec des paramètres réguliers dans une fonction. Les paramètres varadiques doivent toujours être le dernier paramètre.

Par exemple:

package main
import "fmt"

// Hàm Variadic tính tổng
func sum(nums ...int) int {
    total := 0
    for _, n := range nums {
        total += n
    }
    return total
}

// Hàm với tham số thông thường và variadic 
func greet(prefix string, nums ...int) {
    fmt.Println(prefix)
    for _, n := range nums {
        fmt.Println("Number:", n)
    }
}
func main() {
    greet("Sum of numbers:", 1, 2, 3)
    greet("Another sum:", 4, 5)
    greet("No numbers sum:")
}

Résultat:

Sum of numbers:
Number: 1
Number: 2
Number: 3
Another sum:
Number: 4
Number: 5
No numbers sum:

Limitations des fonctions variadiques

  • Les fonctions variadiques ne peuvent avoir qu'un seul paramètre variadique et celui-ci doit être le dernier paramètre.
  • Vous ne pouvez pas avoir plusieurs paramètres variadiques dans une seule définition de fonction.
Sign up and earn $1000 a day ⋙

Leave a Comment

Les meilleurs ordinateurs portables pour étudiants en 2025

Les meilleurs ordinateurs portables pour étudiants en 2025

Les étudiants ont besoin d'un ordinateur portable spécifique pour leurs études. Il doit être non seulement suffisamment puissant pour être performant dans la filière choisie, mais aussi suffisamment compact et léger pour être transporté toute la journée.

Comment ajouter une imprimante à Windows 10

Comment ajouter une imprimante à Windows 10

L'ajout d'une imprimante à Windows 10 est simple, bien que le processus pour les appareils filaires soit différent de celui pour les appareils sans fil.

Comment vérifier la RAM et vérifier les erreurs de RAM sur votre ordinateur avec le taux de précision le plus élevé

Comment vérifier la RAM et vérifier les erreurs de RAM sur votre ordinateur avec le taux de précision le plus élevé

Comme vous le savez, la RAM est un composant matériel essentiel d'un ordinateur. Elle sert de mémoire pour le traitement des données et détermine la vitesse d'un ordinateur portable ou de bureau. Dans l'article ci-dessous, WebTech360 vous présente quelques méthodes pour détecter les erreurs de RAM à l'aide d'un logiciel sous Windows.

Why doesnt the freezer have a light but the refrigerator does?

Why doesnt the freezer have a light but the refrigerator does?

Refrigerators are familiar appliances in families. Refrigerators usually have 2 compartments, the cool compartment is spacious and has a light that automatically turns on every time the user opens it, while the freezer compartment is narrow and has no light.

2 Ways to Fix Network Congestion That Slows Down Wi-Fi

2 Ways to Fix Network Congestion That Slows Down Wi-Fi

Wi-Fi networks are affected by many factors beyond routers, bandwidth, and interference, but there are some smart ways to boost your network.

Comment rétrograder diOS 17 à iOS 16 sans perte de données avec Tenorshare Reiboot

Comment rétrograder diOS 17 à iOS 16 sans perte de données avec Tenorshare Reiboot

Si vous souhaitez revenir à la version stable d'iOS 16 sur votre téléphone, voici le guide de base pour désinstaller iOS 17 et rétrograder d'iOS 17 à 16.

Que se passe-t-il dans le corps lorsque vous mangez du yaourt tous les jours ?

Que se passe-t-il dans le corps lorsque vous mangez du yaourt tous les jours ?

Le yaourt est un aliment merveilleux. Est-il bon de manger du yaourt tous les jours ? Si vous mangez du yaourt tous les jours, comment votre corps va-t-il changer ? Découvrons-le ensemble !

Quel type de riz est le meilleur pour la santé ?

Quel type de riz est le meilleur pour la santé ?

Cet article présente les types de riz les plus nutritifs et comment maximiser les bienfaits pour la santé du riz que vous choisissez.

Comment se réveiller à lheure le matin

Comment se réveiller à lheure le matin

Établir un horaire de sommeil et une routine de coucher, changer votre réveil et ajuster votre alimentation sont quelques-unes des mesures qui peuvent vous aider à mieux dormir et à vous réveiller à l’heure le matin.

Latest Bathroom Tower Defense Codes and How to Enter Codes

Latest Bathroom Tower Defense Codes and How to Enter Codes

Get Bathroom Tower Defense Roblox game codes and redeem them for exciting rewards. They will help you upgrade or unlock towers with higher damage.

4 façons dont lIA améliore les téléviseurs intelligents

4 façons dont lIA améliore les téléviseurs intelligents

De la meilleure qualité d’image et de son au contrôle vocal et bien plus encore, ces fonctionnalités alimentées par l’IA rendent les téléviseurs intelligents bien meilleurs !

Pourquoi ChatGPT est meilleur que DeepSeek

Pourquoi ChatGPT est meilleur que DeepSeek

Au début, les gens avaient de grands espoirs pour DeepSeek. En tant que chatbot IA commercialisé comme un concurrent sérieux de ChatGPT, il promet des capacités et des expériences de chat intelligentes.

Découvrez Fireflies.ai : le secrétaire IA gratuit qui vous fait gagner des heures de travail

Découvrez Fireflies.ai : le secrétaire IA gratuit qui vous fait gagner des heures de travail

Il est facile de manquer des détails importants lorsque l’on note d’autres éléments essentiels, et essayer de prendre des notes tout en discutant peut être distrayant. Fireflies.ai est la solution.

Comment élever un axolotl dans Minecraft et apprivoiser une salamandre dans Minecraft

Comment élever un axolotl dans Minecraft et apprivoiser une salamandre dans Minecraft

Axolot Minecraft sera un excellent assistant pour les joueurs lorsqu'ils opèrent sous l'eau s'ils savent comment les utiliser.

DeceptionAds Warning: New Malicious Ad Type Exploits Legitimate Services to Display Fake CAPTCHAs

DeceptionAds Warning: New Malicious Ad Type Exploits Legitimate Services to Display Fake CAPTCHAs

DeceptionAds is a new form of malvertising, where scammers use legitimate advertising platforms and make sure their malicious sites avoid censorship as much as possible.