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>
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>
Ici, la fonction add
est appelée avec les arguments 3
et 4
, et le résultat est stocké dans la variable result
.
Dans GO, la dénomination des fonctions suit certaines conventions pour maintenir la lisibilité et la cohérence. Voici quelques meilleures pratiques:
calculateAverage
.calculateAverage
plutôt que quelque chose de cryptique comme calcAvg
.calculate
est préféré à calc
.Add
est exporté, alors add
ne l'est pas.En Go, vous pouvez transmettre des arguments aux fonctions en utilisant différentes méthodes, chacune avec ses propres caractéristiques:
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>
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>
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>
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:
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>
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>
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>
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>
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!