Junior — Middle
Jak zaimplementować przekazywanie wartości argumentów do funkcji, jeśli parametry nie zostały wyraźnie przekazane podczas wywołania?
sobes.tech AI
Odpowiedź od AI
W Go nie ma wsparcia dla parametrów domyślnych jak w niektórych innych językach. Aby zaimplementować przekazywanie wartości argumentów, gdy parametry nie zostały jawnie przekazane, zazwyczaj stosuje się jedno z następujących podejść:
- Użycie parametrów zmiennych (
...) — pozwala na przekazanie dowolnej liczby argumentów, a wewnątrz funkcji można sprawdzić, czy zostały przekazane, i ustawić wartości domyślne w razie potrzeby.
func przykład(args ...int) {
var val int
if len(args) > 0 {
val = args[0]
} else {
val = 42 // wartość domyślna
}
fmt.Println(val)
}
- Przekazywanie struktury z ustawieniami — tworzy się strukturę z parametrami, a jeśli pola nie są wypełnione, wewnątrz funkcji ustawiane są wartości domyślne.
type Config struct {
Param int
}
func przykład(cfg Config) {
if cfg.Param == 0 {
cfg.Param = 42 // wartość domyślna
}
fmt.Println(cfg.Param)
}
- Użycie wskaźników i sprawdzanie na nil — jeśli parametr jest przekazywany jako wskaźnik, można sprawdzić, czy został przekazany, i ustawić wartość domyślną.
W ten sposób w Go zwykle implementuje się zachowanie parametrów domyślnych poprzez dodatkowe sprawdzenia wewnątrz funkcji, ponieważ składnia dla parametrów domyślnych nie istnieje.