Junior — Middle
Hogyan valósítja meg az argumentumértékek átadását egy függvénynek, ha a paramétereket nem adták meg kifejezetten a hívás során?
sobes.tech MI
Válasz az MI-től
Go nyelvben nincs támogatás az alapértelmezett paraméterekhez, mint néhány más nyelvben. Az argumentumértékek átadásának megvalósításához, ha a paramétereket nem adták meg kifejezetten, általában az alábbi megközelítések egyikét alkalmazzák:
- Változó paraméterek (
...) használata — lehetővé teszi tetszőleges számú argumentum átadását, és a függvényben ellenőrizhető, hogy átadták-e őket, és szükség esetén alapértelmezett értékeket állítanak be.
func példa(args ...int) {
var val int
if len(args) > 0 {
val = args[0]
} else {
val = 42 // alapértelmezett érték
}
fmt.Println(val)
}
- Beállításokkal struktúra átadása — létrehozunk egy struktúrát a paraméterekkel, és ha a mezők nincsenek kitöltve, a függvényen belül alapértelmezett értékeket állítanak be.
type Config struct {
Param int
}
func példa(cfg Config) {
if cfg.Param == 0 {
cfg.Param = 42 // alapértelmezett érték
}
fmt.Println(cfg.Param)
}
- Mutatók és nil ellenőrzése — ha a paraméter mutatóként kerül átadásra, ellenőrizhető, hogy átadták-e, és beállítható egy alapértelmezett érték.
Így a Go nyelvben általában az alapértelmezett paraméter viselkedést további ellenőrzésekkel valósítják meg a függvényen belül, mivel a szintaxis nem támogatott az alapértelmezett paraméterekhez.