Maison développement back-end Golang Il existe plusieurs types de variables en langage Go

Il existe plusieurs types de variables en langage Go

Jan 10, 2023 am 11:34 AM
变量 golang go语言

Il existe trois types de variables : 1. Les variables définies dans une fonction sont appelées variables locales, et leur portée est limitée à l'intérieur de la fonction ; les variables locales n'existent pas toujours, elles n'existent qu'après que la fonction qui les définit est créée. appelée, et après la fin de l'appel de fonction, cette variable locale sera détruite. 2. Les variables définies en dehors de la fonction sont appelées variables globales. Elles ne doivent être définies que dans un seul fichier source et peuvent être utilisées dans tous les fichiers source ; la déclaration de variable globale doit commencer par le mot-clé var si vous souhaitez utiliser la variable globale. dans un package externe La première lettre d'une variable doit être en majuscule. 3. Les variables dans la définition de fonction sont appelées paramètres formels.

Il existe plusieurs types de variables en langage Go

L'environnement d'exploitation de ce tutoriel : système Windows 7, GO version 1.18, ordinateur Dell G3.

Le langage Go est un langage typé statiquement, donc les variables ont des types clairs, et le compilateur vérifiera également l'exactitude du type de variable. En mathématiques, une variable représente un nombre qui n'a pas de valeur fixe et qui peut être modifié. Mais du point de vue de la mise en œuvre d’un système informatique, une variable est un ou plusieurs segments de mémoire utilisés pour stocker des données.

Une variable (constante, type ou fonction) a une certaine portée dans le programme, appelée portée.

Comprendre la portée des variables est plus important pour nous d'apprendre le langage Go, car le langage Go vérifiera si chaque variable a été utilisée lors de la compilation. Une fois qu'une variable inutilisée apparaît, une erreur de compilation sera signalée. Si vous ne parvenez pas à comprendre la portée des variables, cela peut provoquer des erreurs de compilation inexpliquées.

Selon l'emplacement où la variable est définie, elle peut être divisée en trois types suivants :

  • Les variables définies dans la fonction sont appelées variables locales

  • Les variables définies en dehors de la fonction sont appelées variables globales

  • Dans la définition de la fonction Les variables sont appelées paramètres formels

Présentons-les séparément ci-dessous.

Variables locales

Les variables déclarées/définies à l'intérieur d'une fonction sont appelées variables locales, et la portée des variables locales est limitée à l'intérieur de la fonction. Les variables définies à l'intérieur de la fonction, les paramètres et les valeurs de retour de la fonction, les variables utilisées à l'intérieur des structures if et for, etc. sont toutes des variables locales.

Une variable locale n'existe pas toujours. Elle n'existe qu'après l'appel de la fonction qui la définit. Cette variable locale sera détruite une fois l'appel de la fonction terminé.

【Exemple】La fonction main() suivante utilise les variables locales a, b et c.

package main
import (
    "fmt"
)
func main() {
    //声明局部变量 a 和 b 并赋值
    var a int = 3
    var b int = 4
    //声明局部变量 c 并计算 a 和 b 的和
    c := a + b
    fmt.Printf("a = %d, b = %d, c = %d\n", a, b, c)
}
Copier après la connexion

Il existe plusieurs types de variables en langage Go

Utilisez {} pour limiter la portée de la variable

package main
import "fmt"
func main() {
	{
		name := "HaiCoder"
		fmt.Println("Name =", name)
	}
}
Copier après la connexion

Il existe plusieurs types de variables en langage Go

Nous utilisons {} pour limiter la portée du nom de la variable à l'intérieur de {} , c'est-à-dire la portée du nom de la variable pour le moment, c'est seulement dans Dans {}, le nom est une variable locale.

Remarque : lors de l'accès à une variable en dehors de la portée d'une variable, le programme signalera une erreur

package main
import "fmt"
func main() {
	for i := 0; i < 3; i++{
		fmt.Print(i)
		fmt.Print(" ")
	}
	fmt.Print(i)
}
Copier après la connexion

Il existe plusieurs types de variables en langage Go

Nous définissons une variable locale i à l'intérieur de la boucle for et l'utilisons à ce moment-là, la portée de la variable. i est limité au {} de la boucle for interne. Enfin, lorsque nous accédons à la variable i en dehors de {} de la boucle for, le programme signale une erreur car la variable i dépasse la portée.

Variables globales

Les variables déclarées en dehors de la fonction sont appelées variables globales. Les variables globales ne doivent être définies que dans un seul fichier source et peuvent être utilisées dans tous les fichiers source. Bien entendu, cette variable globale n'est pas incluse. Le fichier source doit utiliser le mot-clé "import" pour introduire le fichier source où se trouve la variable globale avant que cette variable globale puisse être utilisée.

La déclaration de la variable globale doit commencer par le mot-clé var. Si vous souhaitez utiliser la variable globale dans un package externe, la première lettre doit être en majuscule.

【Exemple】Dans le code suivant, la ligne 6 définit la variable globale c.

package main
import "fmt"
//声明全局变量
var c int
func main() {
    //声明局部变量
    var a, b int
    //初始化参数
    a = 3
    b = 4
    c = a + b
    fmt.Printf("a = %d, b = %d, c = %d\n", a, b, c)
}
Copier après la connexion

Il existe plusieurs types de variables en langage Go

Explication : Les variables globales et les variables locales dans les programmes en langage Go peuvent avoir le même nom, mais les variables locales dans le corps de la fonction auront la priorité.

package main
import "fmt"
//声明全局变量
var a float32 = 3.14
func main() {
    //声明局部变量
    var a int = 3
    fmt.Printf("a = %d\n", a)
}
Copier après la connexion

Il existe plusieurs types de variables en langage Go

Paramètres formels

Lors de la définition d'une fonction, les variables entre parenthèses après le nom de la fonction sont appelées paramètres formels (appelés paramètres formels). Les paramètres formels ne prendront effet que lorsque la fonction est appelée et seront détruits une fois l'appel de fonction terminé. Lorsque la fonction n'est pas appelée, les paramètres formels de la fonction n'occupent pas d'unités de stockage réelles et n'ont pas de valeurs réelles.

Les paramètres formels seront utilisés comme variables locales de la fonction.

[Exemple] La ligne 21 du code ci-dessous définit les paramètres formels a et b.

package main
import (
    "fmt"
)
//全局变量 a
var a int = 13
func main() {
    //局部变量 a 和 b
    var a int = 3
    var b int = 4
    fmt.Printf("main() 函数中 a = %d\n", a)
    fmt.Printf("main() 函数中 b = %d\n", b)
    c := sum(a, b)
    fmt.Printf("main() 函数中 c = %d\n", c)
}
func sum(a, b int) int {
    fmt.Printf("sum() 函数中 a = %d\n", a)
    fmt.Printf("sum() 函数中 b = %d\n", b)
    num := a + b
    return num
}
Copier après la connexion

Il existe plusieurs types de variables en langage Go

【相关推荐: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

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

Video Face Swap

Video Face Swap

Échangez les visages dans n'importe quelle vidéo sans effort grâce à notre outil d'échange de visage AI entièrement gratuit !

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Quelles bibliothèques sont utilisées pour les opérations du numéro de point flottantes en Go? Quelles bibliothèques sont utilisées pour les opérations du numéro de point flottantes en Go? Apr 02, 2025 pm 02:06 PM

La bibliothèque utilisée pour le fonctionnement du numéro de point flottante dans le langage go présente comment s'assurer que la précision est ...

Quel est le problème avec le fil de file d'attente dans GO's Crawler Colly? Quel est le problème avec le fil de file d'attente dans GO's Crawler Colly? Apr 02, 2025 pm 02:09 PM

Problème de threading de file d'attente dans Go Crawler Colly explore le problème de l'utilisation de la bibliothèque Crawler Crawler dans le langage Go, les développeurs rencontrent souvent des problèmes avec les threads et les files d'attente de demande. � ...

Dans Go, pourquoi les chaînes d'impression avec println et string () ont-elles des effets différents? Dans Go, pourquoi les chaînes d'impression avec println et string () ont-elles des effets différents? Apr 02, 2025 pm 02:03 PM

La différence entre l'impression de chaîne dans le langage go: la différence dans l'effet de l'utilisation de fonctions println et string () est en Go ...

Comment résoudre le problème de conversion de type user_id lors de l'utilisation du flux redis pour implémenter les files d'attente de messages dans le langage Go? Comment résoudre le problème de conversion de type user_id lors de l'utilisation du flux redis pour implémenter les files d'attente de messages dans le langage Go? Apr 02, 2025 pm 04:54 PM

Le problème de l'utilisation de Redessstream pour implémenter les files d'attente de messages dans le langage GO consiste à utiliser le langage GO et redis ...

Que dois-je faire si les étiquettes de structure personnalisées à Goland ne sont pas affichées? Que dois-je faire si les étiquettes de structure personnalisées à Goland ne sont pas affichées? Apr 02, 2025 pm 05:09 PM

Que dois-je faire si les étiquettes de structure personnalisées à Goland ne sont pas affichées? Lorsque vous utilisez Goland pour le développement du langage GO, de nombreux développeurs rencontreront des balises de structure personnalisées ...

Objectif de Golang: Construire des systèmes efficaces et évolutifs Objectif de Golang: Construire des systèmes efficaces et évolutifs Apr 09, 2025 pm 05:17 PM

GO Language fonctionne bien dans la construction de systèmes efficaces et évolutifs. Ses avantages incluent: 1. Haute performance: compilé en code machine, vitesse de course rapide; 2. Programmation simultanée: simplifier le multitâche via les goroutines et les canaux; 3. Simplicité: syntaxe concise, réduction des coûts d'apprentissage et de maintenance; 4. Plate-forme multipliée: prend en charge la compilation multiplateforme, déploiement facile.

Quelles bibliothèques de GO sont développées par de grandes entreprises ou fournies par des projets open source bien connus? Quelles bibliothèques de GO sont développées par de grandes entreprises ou fournies par des projets open source bien connus? Apr 02, 2025 pm 04:12 PM

Quelles bibliothèques de GO sont développées par de grandes entreprises ou des projets open source bien connus? Lors de la programmation en Go, les développeurs rencontrent souvent des besoins communs, ...

Comment résoudre le problème des contraintes de type de fonction générique de Golang en cours de suppression automatique dans VSCODE? Comment résoudre le problème des contraintes de type de fonction générique de Golang en cours de suppression automatique dans VSCODE? Apr 02, 2025 pm 02:15 PM

La suppression automatique des contraintes de type de fonction générique Golang dans les utilisateurs de VScode peut rencontrer un problème étrange lors de l'écriture de code Golang à l'aide de VScode. quand...

See all articles