Sobes.tech
Junior — Middle

Agar argument qiymatlarini funksiyaga o'tkazishni qanday amalga oshirasiz, agar parametrlar chaqiruvda aniq ko'rsatilmagan bo'lsa?

sobes.tech AI

AIdan javob

Go tilida, ba'zi boshqa tillarda bo'lgani kabi, standart parametrlar uchun qo'llab-quvvatlash mavjud emas. Parametrlar aniq uzatilmagan hollarda argument qiymatlarini uzatishni amalga oshirish uchun odatda quyidagi yondashuvlardan biri qo'llaniladi:

  1. O'zgaruvchan parametrlar (...) dan foydalanish — istalgan miqdordagi argumentlarni uzatishga imkon beradi va funksiyada ularning uzatilganligini tekshirish va kerak bo'lsa, standart qiymatlarni o'rnatish.
func misol(args ...int) {
    var val int
    if len(args) > 0 {
        val = args[0]
    } else {
        val = 42 // standart qiymat
    }
    fmt.Println(val)
}
  1. Sozlamalar bilan tuzilmani uzatish — parametrlar bilan tuzilma yaratiladi, va agar maydonlar to'ldirilmagan bo'lsa, funksiyada standart qiymatlar o'rnatiladi.
type Config struct {
    Param int
}

func misol(cfg Config) {
    if cfg.Param == 0 {
        cfg.Param = 42 // standart qiymat
    }
    fmt.Println(cfg.Param)
}
  1. Ko'rsatkichlar va nil tekshiruvi — agar parametr ko'rsatkich sifatida uzatilgan bo'lsa, uni uzatilganligini tekshirish va standart qiymatni o'rnatish mumkin.

Shu tarzda, Go tilida odatda standart parametrlar xulqini qo'shimcha tekshiruvlar orqali amalga oshiriladi, chunki standart parametrlar uchun sintaksis mavjud emas.