Sobes.tech
Junior — Middle

Kā īstenot argumentu vērtību nodošanu funkcijai, ja parametri nav tieši nodoti izsaukuma laikā?

sobes.tech AI

Atbilde no AI

Go valodā nav noklusējuma parametru atbalsta, kā dažās citās valodās. Lai īstenotu argumentu vērtību nodošanu, ja parametri nav tieši nodoti, parasti izmanto vienu no šiem pieejas veidiem:

  1. Izmantojot mainīgus parametrus (...) — tas ļauj nodot jebkuru argumentu skaitu, un funkcijas iekšienē pārbaudīt, vai tie ir nodoti, un nepieciešamības gadījumā iestatīt noklusējuma vērtības.
func piemērs(args ...int) {
    var vērtība int
    if len(args) > 0 {
        vērtība = args[0]
    } else {
        vērtība = 42 // noklusējuma vērtība
    }
    fmt.Println(vērtība)
}
  1. Struktūras nodošana ar iestatījumiem — tiek izveidota struktūra ar parametriem, un, ja lauki nav aizpildīti, funkcijas iekšienē tiek iestatītas noklusējuma vērtības.
type Config struct {
    Param int
}

func piemērs(cfg Config) {
    if cfg.Param == 0 {
        cfg.Param = 42 // noklusējuma vērtība
    }
    fmt.Println(cfg.Param)
}
  1. Norādītāju izmantošana un nil pārbaude — ja parametrs tiek nodots kā norādītājs, to var pārbaudīt, vai tas ir nodots, un iestatīt noklusējuma vērtību.

Tādējādi, Go valodā, parasti, noklusējuma parametru uzvedību īsteno ar papildu pārbaudēm funkcijas iekšienē, jo sintakse priekš noklusējuma parametriem nav pieejama.