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: 20Infine, 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: 10Questo dimostra come funziona l'ombreggiamento delle variabili nelle istruzioni if: la variabile y è accessibile solo all'interno dei blocchi condizionali in cui è stata dichiarata.
Sfida
PrincipianteIn 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)
}Questa lezione include un breve quiz. Inizia la lezione per rispondere e tenere traccia dei tuoi progressi.
Tutte le lezioni di Fondamenti
4Operatori di confronto e logici
Operatori di confronto - Parte 1Operatori di confronto - Parte 2Operatore AND logicoOperatore OR logicoOperatore NOT logicoNozioni di base sulla precedenza degli operatoriRiepilogo - Eseguire confronti7Flusso di controllo: cicli
Come funziona il ciclo `for`Ciclo `for` - baseCiclo `for` - solo condizioneLa parola chiave `break`La parola chiave `continue`Cicli annidatiRiepilogo - ripetere le azioni2Variabili e tipi di dati di base
Che cos'è una variabileInferenza del tipo con `:=`Numeri interi (int)Numeri in virgola mobileValori booleaniStringheValori zeroCostantiConvenzioni di denominazioneRiepilogo: variabili e tipi5Input/output di base
Output formattatoVerbi di formattazioneVisualizzazione dei tipiAcquisire input di base dall’utenteRiepilogo - Input e output8Funzioni
Capire le funzioniDichiarare una funzioneChiamare le funzioniParametri delle funzioniRestituire un singolo valoreRestituire più valoriValori restituiti con nomeFondamenti dell'ambito delle funzioniRiepilogo - Creare codice riutilizzabile3Operatori di base
Operatori aritmeticiOperatore di divisioneL'operatore moduloOperatore di assegnazioneOperatori di assegnazione compostaIncremento e decrementoRiepilogo - Calcoli6Flusso di controllo: condizioni
L'istruzione `if`La parola chiave `else`La parola chiave `else if`Ombreggiamento delle variabili in `if`Inizializzare le variabiliL'istruzione `switch``switch` con espressioni`switch` senza espressioneLa parola chiave `fallthrough`Riepilogo: prendere decisioni9Puntatori
Che cos’è un puntatore?Dichiarare variabili puntatoreL’operatore indirizzoDereferenziare i puntatoriUsare i puntatori nelle funzioniPuntatori nilRipasso - Capire i puntatori12Tipi compositi: mappe
Introduzione alle mappeDichiarare i letterali delle mappeCreare mappe con `make`Aggiungere e aggiornare coppie chiave-valoreAccedere ai valori delle mappeVerificare l'esistenza di una chiaveEliminare elementi dalle mappeLunghezza delle mappeIterare sulle mappeRiepilogo - Archiviazione chiave-valoreEsercitati da solo: Compilatore Go online