Maison  >  Article  >  développement back-end  >  Portée des variables dans les fonctions Golang : variables locales et variables globales

Portée des variables dans les fonctions Golang : variables locales et variables globales

王林
王林original
2024-01-18 09:10:071193parcourir

Portée des variables dans les fonctions Golang : variables locales et variables globales

Les variables locales et globales dans les fonctions Golang nécessitent des exemples de code spécifiques

Dans Golang, la portée des variables est un concept très important. Dans les fonctions, on rencontre souvent des variables locales et des variables globales. Il existe quelques différences entre les deux en termes de portée et d'utilisation. Ci-dessous, je vais les présenter en détail et donner des exemples de code spécifiques.

Les variables locales sont des variables définies à l'intérieur d'une fonction et leur portée est limitée à la fonction à laquelle elles appartiennent. Les variables locales ne fonctionnent qu'à l'intérieur de la fonction et n'existent plus après avoir quitté la fonction. Par exemple :

package main

import "fmt"

func main() {
    var a int = 10 // 局部变量
    var b int = 20 // 局部变量

    fmt.Printf("在main函数中,a=%d, b=%d
", a, b)
    test() // 调用test函数
}

func test() {
    var a int = 5 // 局部变量
    var b int = 15 // 局部变量

    fmt.Printf("在test函数中,a=%d, b=%d
", a, b)
}

Résultat de sortie :

在main函数中,a=10, b=20
在test函数中,a=5, b=15

Comme le montre le résultat de sortie, les valeurs des variables locales a et b sont différentes dans la fonction principale et la fonction de test. En effet, ils sont définis dans des fonctions différentes et ne s'influenceront pas mutuellement.

Les variables globales correspondent aux variables locales. Les variables globales sont des variables définies en dehors de la fonction et à l'intérieur du package, et peuvent être utilisées dans tout le package. La portée d'une variable globale commence au point où elle est définie et se poursuit jusqu'à la fin du package. Voici un exemple :

package main

import "fmt"

var a int = 10 // 全局变量

func main() {
    var b int = 20 // 局部变量
    fmt.Printf("在main函数中,a=%d, b=%d
", a, b)
    test() // 调用test函数
}

func test() {
    fmt.Printf("在test函数中,a=%d
", a)
}

Résultat de sortie :

在main函数中,a=10, b=20
在test函数中,a=10

Comme le montre le résultat de sortie, dans la fonction de test, bien que la variable a ne soit pas définie, la valeur de la variable globale a est toujours accessible. En effet, les variables globales sont visibles dans tout le package.

Il convient de noter que s'il existe une variable locale portant le même nom que la variable globale dans la fonction, la variable locale écrasera la valeur de la variable globale. Par exemple :

package main

import "fmt"

var a int = 10 // 全局变量

func main() {
    var a int = 20 // 局部变量
    fmt.Printf("在main函数中,a=%d
", a)
    test() // 调用test函数
}

func test() {
    fmt.Printf("在test函数中,a=%d
", a)
}

Résultat de sortie :

在main函数中,a=20
在test函数中,a=10

Comme le montre le résultat de sortie, la valeur de a imprimée dans la fonction de test est la valeur de la variable globale a, pas la valeur de la variable locale a.

En résumé, des variables locales et des variables globales peuvent exister dans les fonctions de Golang. La portée des variables locales est limitée à l'intérieur de la fonction et n'existe plus après avoir quitté la fonction ; tandis que les variables globales sont visibles dans tout le package et que leurs valeurs sont accessibles par n'importe quelle fonction. Lorsqu'une variable locale et une variable globale portent le même nom, la variable locale écrase la valeur de la variable globale. Dans la programmation réelle, nous pouvons utiliser des variables locales et des variables globales selon les besoins pour obtenir un code plus flexible et plus maintenable.

Ce qui précède sont des exemples de code spécifiques de variables locales et de variables globales dans les fonctions Golang. J'espère qu'il sera utile à tout le monde de comprendre et d'utiliser les variables locales et les variables globales.

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:
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