Menu
Coddy logo textTech

Ombreggiamento delle variabili in `if`

Fa parte della sezione Fondamenti del percorso GO di Coddy. Lezione 37 di 109.

Impariamo a conoscere l'oscuramento delle variabili nelle istruzioni if. Questo ti permette di creare una variabile che esiste solo all'interno del blocco if e dei relativi blocchi else.

Per prima cosa, creiamo una variabile al di fuori della nostra istruzione condizionale:

x := 10
fmt.Println("Original x value:", x)

Dopo aver eseguito questo codice, avremo una variabile x con il valore 10 che potremo usare in tutto il nostro programma.

Ora usiamo l'ombreggiamento delle variabili in un'istruzione if per creare una nuova variabile che esiste solo all'interno di quel blocco:

if y := x * 2; y > 15 {
    fmt.Println("y is greater than 15:", y)
    // y esiste solo in questo blocco
} else {
    fmt.Println("y is not greater than 15:", y)
    // y è disponibile anche nei blocchi else
}

Dopo aver eseguito questo codice, Go calcolerà y come 20 (ovvero x * 2), controllerà se è maggiore di 15 e poi eseguirà il primo blocco. L'output verrà visualizzato sullo schermo:

y is greater than 15: 20

Infine, proviamo ad accedere alle nostre variabili dopo l'istruzione if:

// fmt.Println(y) causerebbe un errore: y non esiste qui
fmt.Println("x is still:", x)

Dopo aver eseguito questo codice, possiamo ancora accedere a x, ma y non è più disponibile perché esisteva solo all'interno dei blocchi if e else. L'output verrà mostrato sullo schermo:

x is still: 10

Questo dimostra come funziona l'ombreggiamento delle variabili nelle istruzioni if: la variabile y è accessibile solo all'interno dei blocchi condizionali in cui è stata dichiarata.

challenge icon

Sfida

Principiante

In questa sfida, farai pratica con l'ombreggiamento delle variabili in un'istruzione if. Vedrai come una variabile dichiarata all'interno di un blocco if può avere lo stesso nome di una variabile nell'ambito esterno, ma un valore diverso.

Il codice contiene una variabile message nell'ambito esterno. Il tuo compito è creare una variabile ombreggiata con lo stesso nome all'interno del blocco if e poi stampare entrambe le variabili per vedere l'effetto dell'ombreggiamento.

Provalo tu

package main

import "fmt"

func main() {
	// Variabile dell'ambito esterno
	message := "Hello from outer scope"
	
	isLoggedIn := true
	
	if isLoggedIn {
		// TODO: Crea una nuova variabile chiamata 'message' con il valore "Hello from inner scope"
		
		// Questo stampa il messaggio dell'ambito interno
		fmt.Println(message)
	}
	
	// Questo stampa il messaggio dell'ambito esterno
	fmt.Println(message)
}
quiz iconMettiti alla prova

Questa lezione include un breve quiz. Inizia la lezione per rispondere e tenere traccia dei tuoi progressi.

Tutte le lezioni di Fondamenti

Esercitati da solo: Compilatore Go online