Junior — Middle
Hoe implementeer je het doorgeven van argumentwaarden aan een functie als de parameters niet expliciet zijn doorgegeven bij het aanroepen?
sobes.tech AI
Antwoord van AI
In Go is er geen ondersteuning voor standaardparameters zoals in sommige andere talen. Om het doorgeven van argumentwaarden te implementeren wanneer parameters niet expliciet zijn doorgegeven, worden meestal een van de volgende benaderingen gebruikt:
- Gebruik van variadische parameters (
...) — stelt je in staat om een willekeurig aantal argumenten door te geven, en binnen de functie te controleren of ze zijn doorgegeven en indien nodig standaardwaarden in te stellen.
func voorbeeld(args ...int) {
var val int
if len(args) > 0 {
val = args[0]
} else {
val = 42 // standaardwaarde
}
fmt.Println(val)
}
- Doorgeven van een structuur met instellingen — een structuur met parameters wordt gemaakt, en als velden niet zijn ingevuld, worden binnen de functie standaardwaarden ingesteld.
type Config struct {
Param int
}
func voorbeeld(cfg Config) {
if cfg.Param == 0 {
cfg.Param = 42 // standaardwaarde
}
fmt.Println(cfg.Param)
}
- Gebruik van pointers en nil-controle — als de parameter als pointer wordt doorgegeven, kan worden gecontroleerd of deze is doorgegeven en een standaardwaarde worden ingesteld.
Op deze manier implementeert men in Go meestal het gedrag van standaardparameters via aanvullende controles binnen de functie, omdat de syntax voor standaardparameters niet bestaat.