Maison > développement back-end > Golang > Comment définissez-vous et appelez-vous les fonctions dans Go?

Comment définissez-vous et appelez-vous les fonctions dans Go?

Johnathan Smith
Libérer: 2025-03-19 14:41:29
original
666 Les gens l'ont consulté

Comment définissez-vous et appelez-vous les fonctions dans Go?

Dans GO, les fonctions sont définies à l'aide du mot-clé func suivi du nom de la fonction et d'un ensemble de parenthèses contenant la liste des paramètres. Le corps de la fonction est enfermé en accolades bouclées {} . Voici un exemple de base d'une définition de fonction:

 <code class="go">func add(a int, b int) int { return ab }</code>
Copier après la connexion

Dans cet exemple, add est une fonction qui prend deux paramètres de type int et renvoie un int .

Pour appeler une fonction dans Go, vous utilisez simplement le nom de la fonction suivi des arguments entre parenthèses. Par exemple:

 <code class="go">result := add(3, 4) fmt.Println(result) // Output: 7</code>
Copier après la connexion

Ici, la fonction add est appelée avec les arguments 3 et 4 , et le résultat est stocké dans la variable result .

Quelles sont les meilleures pratiques pour les fonctions de dénomination en Go?

Dans GO, la dénomination des fonctions suit certaines conventions pour maintenir la lisibilité et la cohérence. Voici quelques meilleures pratiques:

  1. Utilisez des écrans mixtes pour les noms de fonction : GO utilise des caps mixtes (également connus sous le nom de cas de camel) pour les noms de fonction. La première lettre du nom de la fonction est minuscule, et chaque mot suivant commence par une lettre majuscule. Par exemple, calculateAverage .
  2. Être descriptif : les noms de fonction doivent clairement indiquer leur objectif. Une fonction qui calcule la moyenne d'une liste de nombres pourrait être nommée calculateAverage plutôt que quelque chose de cryptique comme calcAvg .
  3. Évitez les abréviations : à moins que l'abréviation ne soit largement reconnue et utilisée dans la communauté Go, il est préférable d'utiliser des mots complets. Par exemple, calculate est préféré à calc .
  4. Fonctions exportées : Dans Go, si un nom de fonction commence par une lettre majuscule, il est exporté et peut être utilisé par d'autres packages. Par exemple, Add est exporté, alors add ne l'est pas.
  5. Cohérence : Maintenez la cohérence avec les conventions de dénomination utilisées dans le reste de la base de code ou de la bibliothèque standard.

Comment pouvez-vous transmettre des arguments aux fonctions en Go, et quelles sont les différences entre elles?

En Go, vous pouvez transmettre des arguments aux fonctions en utilisant différentes méthodes, chacune avec ses propres caractéristiques:

  1. Paramètres de valeur : La façon par défaut de passer les arguments en Go est par valeur. Lorsque vous passez un argument par valeur, une copie de la valeur est faite et transmise à la fonction. Les modifications du paramètre à l'intérieur de la fonction n'affectent pas la valeur d'origine en dehors de la fonction.

     <code class="go">func incrementByValue(x int) { x } a := 1 incrementByValue(a) fmt.Println(a) // Output: 1 (a remains unchanged)</code>
    Copier après la connexion
  2. Paramètres du pointeur : vous pouvez passer un pointeur vers une valeur. Cela permet à la fonction de modifier la valeur d'origine.

     <code class="go">func incrementByPointer(x *int) { (*x) } a := 1 incrementByPointer(&a) fmt.Println(a) // Output: 2 (a is modified)</code>
    Copier après la connexion
  3. Paramètres variades : GO prend en charge les fonctions variadiques, qui peuvent accepter un nombre indéfini d'arguments du même type. Le paramètre variatique est indiqué par ... avant le type.

     <code class="go">func sum(numbers ...int) int { total := 0 for _, num := range numbers { total = num } return total } fmt.Println(sum(1, 2, 3, 4)) // Output: 10</code>
    Copier après la connexion

Quelle est la signification des valeurs de retour dans les fonctions GO et comment sont-elles gérées?

Les valeurs de retour dans les fonctions GO jouent un rôle crucial en permettant aux fonctions de communiquer les résultats à l'appelant. Voici des points clés sur les valeurs de retour en Go:

  1. Valeur de retour unique : une fonction peut renvoyer une seule valeur. Le type de retour est spécifié après la liste des paramètres.

     <code class="go">func square(x int) int { return x * x }</code>
    Copier après la connexion
  2. Valeurs de retour multiples : GO permet aux fonctions de renvoyer plusieurs valeurs. Ceci est utile pour renvoyer à la fois un résultat et une erreur.

     <code class="go">func divide(a, b float64) (float64, error) { if b == 0 { return 0, errors.New("division by zero") } return a / b, nil } result, err := divide(10, 2) if err != nil { fmt.Println(err) } else { fmt.Println(result) // Output: 5 }</code>
    Copier après la connexion
  3. Valeurs de retour nommées : GO prend en charge les valeurs de retour nommées, ce qui peut rendre le code plus lisible. Les valeurs de retour nommées sont déclarées dans le cadre de la signature de la fonction.

     <code class="go">func namedReturn(x int) (result int) { result = x * x return }</code>
    Copier après la connexion
  4. Bare Retour : Lorsque vous utilisez des valeurs de retour nommées, GO permet d'utiliser une instruction return Bare, qui renvoie les valeurs de retour nommées.

     <code class="go">func namedReturnWithBareReturn(x int) (result int) { result = x * x return // equivalent to return result }</code>
    Copier après la connexion

Les valeurs de retour sont cruciales pour la gestion des erreurs, permettant aux fonctions de renvoyer à la fois un résultat et un état d'erreur, qui est un modèle commun dans la programmation GO.

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!

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal