Junior — Middle
Wie implementiert man die Übergabe von Argumentwerten an eine Funktion, wenn die Parameter beim Aufruf nicht explizit übergeben wurden?
sobes.tech KI
Antwort von AI
In Go gibt es keine Unterstützung für Standardparameter wie in einigen anderen Sprachen. Um die Übergabe von Argumentwerten zu implementieren, wenn die Parameter nicht explizit übergeben wurden, verwendet man in der Regel eine der folgenden Ansätze:
- Verwendung von variadischen Parametern (
...) — ermöglicht die Übergabe einer beliebigen Anzahl von Argumenten, und innerhalb der Funktion kann überprüft werden, ob sie übergeben wurden, und bei Bedarf Standardwerte gesetzt werden.
func Beispiel(args ...int) {
var val int
if len(args) > 0 {
val = args[0]
} else {
val = 42 // Standardwert
}
fmt.Println(val)
}
- Übergabe einer Konfigurationsstruktur — es wird eine Struktur mit Parametern erstellt, und wenn Felder nicht ausgefüllt sind, werden innerhalb der Funktion Standardwerte gesetzt.
type Config struct {
Param int
}
func Beispiel(cfg Config) {
if cfg.Param == 0 {
cfg.Param = 42 // Standardwert
}
fmt.Println(cfg.Param)
}
- Verwendung von Zeigern und nil-Überprüfung — wenn der Parameter als Zeiger übergeben wird, kann überprüft werden, ob er übergeben wurde, und ein Standardwert gesetzt werden.
Auf diese Weise implementiert man in Go typischerweise das Verhalten von Standardparametern durch zusätzliche Überprüfungen innerhalb der Funktion, da die Syntax für Standardparameter nicht existiert.