English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Tutorial di base in Golang

Istruzioni di controllo in Golang

Funzione e metodo in Golang

Struttura in Golang

Tagli e array in Golang

Stringa (String) in Golang

Puntatore in Golang

Interfaccia in Golang

Concordanza in Golang

Eccezioni (Error) in Golang

Altri argomenti in Golang

Portata delle variabili in Go linguaggio

Prerequisiti:Variabili del linguaggio Go

La portata delle variabili può essere definita come una parte del programma che può accedere a una variabile specifica. Le variabili possono essere definite all'interno di classi, metodi, cicli, ecc. Come in C / Come in C++In Golang, tutti gli identificatori sono di portata lessicale (o statica), ovvero la portata delle variabili può essere determinata durante la compilazione. O puoi dire che una variabile può essere chiamata solo dal blocco di codice in cui è definita.

Le regole di portata delle variabili in Golang possono essere divise in due categorie, a seconda della posizione di dichiarazione delle variabili:

  • Variabile locale(dichiarato all'interno del blocco o della funzione)

  • Variabile globale(dichiarato al di fuori del blocco o della funzione)

Variabile locale

  • Le variabili dichiarate all'interno di una funzione o di un blocco sono chiamate variabili locali. Queste non possono essere accedute al di fuori della funzione o del blocco.

  • Queste variabili possono anche essere dichiarate all'interno di for, while e altre espressioni interne alla funzione.

  • Ma queste variabili possono essere accedute dal codice annidato all'interno della funzione.

  • Queste variabili sono anche chiamate variabili di blocco.

  • Se si dichiarano due volte la stessa variabile nello stesso ambito, si otterrà un errore di compilazione.

  • Alla fine dell'esecuzione della funzione, queste variabili non esisteranno più.

  • Le variabili dichiarate al di fuori del ciclo sono accessibili anche all'interno dei cicli annidati. Questo significa che i metodi e tutti i cicli possono accedere alle variabili globali. Le variabili locali possono essere accedute dai cicli e eseguire la funzione all'interno di essa.

  • Le variabili dichiarate all'interno del ciclo non sono visibili al di fuori del ciclo.

// variabile locale
package main
import "fmt"
// funzione principale
func main() {
    // da qui inizia l'ambito locale della funzione
    // Variabile locale all'interno della funzione principale
    var myvariable1, myvariable2 int = 69, 145
    // visualizza il valore della variabile
    fmt.Printf("myvariable1 valore variabile: %d\n", myvariable1)
    fmt.Printf("Il valore della variabile myvariable2 è: %d\n", myvariable2)
} // Fine dell'area di applicazione locale della funzione principale

Output:

Il valore della variabile myvariable1 è: 69
Il valore della variabile myvariable2 è: 145

Variabile globale

  • Le variabili definite al di fuori di una funzione o di un blocco si chiamano variabili globali.

  • Queste sono disponibili per tutto il ciclo di vita del programma.

  • Queste sono dichiarate nella parte superiore del programma al di fuori di tutte le funzioni o blocchi.

  • Queste possono essere accedute da qualsiasi parte del programma.

// Variabile globale
package main
import "fmt"
// Dichiarazione variabile globale
var myvariable1 int = 100
func main() {
    // Variabile locale all'interno della funzione principale
    var myvariable2 int = 200
    // Mostra variabile globale
    fmt.Printf("Il valore della variabile globale myvariable1 è: %d\n", myvariable1)
    // Mostra variabile locale
    fmt.Printf("Il valore della variabile locale myvariable2 è: %d\n", myvariable2)
    // Chiamata funzione
    display()
}
func display() {
    // Mostra variabile globale
    fmt.Printf("Il valore della variabile globale myvariable1 è: %d\n", myvariable1)
}

Output:

Il valore della variabile globale myvariable1 è: 100
Il valore della variabile locale myvariable2 è: 200
Il valore della variabile globale myvariable1 è: 100

Attenzione:Cosa succede se nella funzione esiste una variabile locale con lo stesso nome della variabile globale?

La risposta è semplice, ovvero il compilatore preferisce le variabili locali. Di solito, quando si definiscono due variabili con lo stesso nome, il compilatore genera un errore di compilazione. Ma se le variabili sono definite in diversi ambiti, il compilatore lo permette. Finché viene definita una variabile locale con lo stesso nome della variabile globale, il compilatore dà la precedenza alla variabile locale.

Esempio:Nel programma sottostante, è possibile vedere chiaramente l'output. Poiché il valore di myvariable1 è 200, questo è fornito nella funzione main. Pertanto, si può dire che le variabili locali hanno una priorità più alta rispetto alle variabili globali.

// Il programma Go mostra la priorità del compilatore
// Variabile locale sulla variabile globale
package main
import "fmt"
// Dichiarazione variabile globale
var myvariable1 int = 100
func main() {
    // Variabile locale all'interno della funzione principale
    // Uguale alla variabile globale
    var myvariable1 int = 200
    // Mostra
    fmt.Printf("Il valore della variabile myvariable1 è: %d\n", myvariable1)
}

Output:

Il valore della variabile myvariable1 è: 200