Maison > développement back-end > Golang > Passage de paramètres dans la fonction golang

Passage de paramètres dans la fonction golang

WBOY
Libérer: 2024-04-28 18:39:02
original
655 Les gens l'ont consulté

Le passage des paramètres de la fonction GoLang adopte le mécanisme de passage par valeur. La modification des paramètres de type valeur n'affecte pas les paramètres réels, tandis que la modification des paramètres de type référence affectera les paramètres de pointeur réels permettant un accès indirect et une modification des paramètres réels ; paramètres.

Passage de paramètres dans la fonction golang

Transmission de paramètres dans les fonctions GoLang

Introduction

Dans GoLang, la transmission de paramètres suit le mécanisme de transmission par valeur. Cela signifie que toute modification apportée aux paramètres à l’intérieur de la fonction n’affectera pas les paramètres réels en dehors de la fonction.

Type de paramètre

Les paramètres de la fonction GoLang peuvent être des types valeur ou des types référence.

  • Type de valeur : Entier, virgule flottante, booléen, chaîne et autres types de base.
  • Types de référence : Types tels que des tableaux, des tranches, des structures, des pointeurs, etc. qui font référence à des données réelles.

Type de valeur

Pour les paramètres de type valeur, toute modification des paramètres à l'intérieur de la fonction n'affectera pas les paramètres réels. En effet, lors d'un appel de fonction, une copie des paramètres est créée.

func swap(a, b int) {
    a, b = b, a // 在函数内交换 a 和 b 的副本
}

func main() {
    x := 5
    y := 7
    swap(x, y)
    fmt.Println(x, y) // 输出 5 7
}
Copier après la connexion

Type de référence

Pour les paramètres de type référence, les modifications apportées aux paramètres à l'intérieur de la fonction affecteront les paramètres réels. En effet, la fonction opère directement sur les données réelles.

func swap(a, b []int) {
    a[0], b[0] = b[0], a[0] // 交换切片的第一个元素
}

func main() {
    x := []int{5}
    y := []int{7}
    swap(x, y)
    fmt.Println(x, y) // 输出 [7] [5]
}
Copier après la connexion

Pointers

Les types de pointeurs fournissent un mécanisme d'accès indirect aux valeurs. Lors du passage d'un type référence via un pointeur, les paramètres réels peuvent être modifiés.

func swap(a, b *int) {
    *a, *b = *b, *a // 交换指针指向的值
}

func main() {
    x := 5
    y := 7
    swap(&x, &y)
    fmt.Println(x, y) // 输出 7 5
}
Copier après la connexion

Cas pratique

Ce qui suit est un cas pratique utilisant le passage de paramètres de fonction :

type Book struct {
Copier après la connexion

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!

Étiquettes associées:
source:php.cn
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