Fondamenti dell'ambito delle funzioni
Fa parte della sezione Fondamenti del percorso GO di Coddy. Lezione 58 di 109.
In Go, le variabili dichiarate all'interno di una funzione sono accessibili solo all'interno di quella funzione. Questo è chiamato ambito della funzione.
Crea una funzione con una variabile locale:
func calculateTotal(price int, quantity int) int {
tax := 0.1 * float64(price * quantity) // variabile locale
total := price * quantity + int(tax)
return total
}
func main() {
result := calculateTotal(10, 2)
fmt.Println("Total:", result)
// fmt.Println(tax) // Errore: tax non è accessibile qui
}L'output mostra solo il valore restituito:
Total: 22La variabile tax esiste solo all'interno della funzione calculateTotal e non è accessibile da main.
Sfida
PrincipianteIn questa sfida, ti eserciterai a comprendere l'ambito delle funzioni in Go. Devi correggere un semplice programma che presenta un problema di ambito.
Il programma ha una variabile globale message e una funzione che tenta di modificarla. Il tuo compito è correggere il codice in modo che la funzione aggiorni correttamente la variabile globale.
Provalo tu
package main
import "fmt"
// Variabile globale
var message string = "Hello from global scope"
func updateMessage() {
// Questo crea una nuova variabile locale invece di modificare quella globale
message := "Hello from function scope"
fmt.Println("Inside function:", message)
}
func main() {
fmt.Println("Before function call:", message)
updateMessage()
// TODO: La variabile globale message ha ancora il valore originale
// Modifica la funzione updateMessage() per cambiare la variabile globale
fmt.Println("After function call:", 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