Junior — Middle
Come viene implementata la trasmissione dei valori predefiniti nei parametri delle funzioni nel linguaggio Go?
sobes.tech AI
Risposta dell'AI
Nel linguaggio Go non esiste un supporto integrato per parametri di funzione con valori predefiniti, come in alcuni altri linguaggi (ad esempio Python o C++). Per implementare un comportamento simile, di solito si utilizzano uno dei seguenti approcci:
- Overloading delle funzioni tramite parametri variabili — passare un numero variabile di argomenti alla funzione e verificarne la presenza internamente:
func greet(name string, messages ...string) {
msg := "Hello"
if len(messages) > 0 {
msg = messages[0]
}
fmt.Println(msg, name)
}
// Chiamate:
greet("Alice") // Hello Alice
greet("Bob", "Hi") // Hi Bob
- Utilizzo di strutture con configurazioni — passare alla funzione una struttura con i parametri, dove si possono impostare valori predefiniti al momento della creazione:
type Config struct {
Timeout int
}
func doSomething(cfg Config) {
if cfg.Timeout == 0 {
cfg.Timeout = 30 // valore predefinito
}
// ...
}
// Chiamata:
doSomething(Config{})
- Creazione di funzioni costruttore ausiliarie con diversi set di parametri.
In questo modo, in Go, i valori predefiniti vengono implementati tramite logica esplicita all’interno della funzione o tramite strutture, e non tramite la sintassi del linguaggio.