Sobes.tech
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:

  1. 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)
}
  1. 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)
}
  1. 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.