Junior — Middle
Come implementare il passaggio dei valori degli argomenti a una funzione se i parametri non sono stati esplicitamente passati durante la chiamata?
sobes.tech AI
Risposta dell'AI
In Go non esiste il supporto per parametri predefiniti come in alcuni altri linguaggi. Per implementare il passaggio di valori degli argomenti quando i parametri non sono stati esplicitamente passati, si utilizzano generalmente uno dei seguenti approcci:
- Utilizzo di parametri variabili (
...) — consente di passare un numero arbitrario di argomenti, e all’interno della funzione verificare se sono stati passati e impostare valori predefiniti se necessario.
func esempio(args ...int) {
var val int
if len(args) > 0 {
val = args[0]
} else {
val = 42 // valore predefinito
}
fmt.Println(val)
}
- Passaggio di una struttura con configurazioni — si crea una struttura con i parametri, e se i campi non sono compilati, all’interno della funzione vengono impostati valori predefiniti.
type Config struct {
Param int
}
func esempio(cfg Config) {
if cfg.Param == 0 {
cfg.Param = 42 // valore predefinito
}
fmt.Println(cfg.Param)
}
- Utilizzo di puntatori e verifica di nil — se il parametro viene passato come puntatore, si può verificare se è stato passato e impostare un valore predefinito.
In questo modo, in Go, si implementa generalmente il comportamento dei parametri predefiniti tramite controlli aggiuntivi all’interno della funzione, poiché la sintassi per i parametri predefiniti non esiste.