Sobes.tech
Junior — Middle

Əgər parametrlər çağırış zamanı açıq şəkildə ötürülməyibsə, arqument dəyərlərinin funksiyaya ötürülməsini necə həyata keçirirsiniz?

sobes.tech Süni İntellekt

AI-dan cavab

Go dilində bəzi digər dillərdə olduğu kimi, standart parametrlər üçün dəstək yoxdur. Parametrlər açıq şəkildə ötürülmədikdə, arqument dəyərlərinin ötürülməsini həyata keçirmək üçün adətən aşağıdakı yanaşmalardan biri istifadə olunur:

  1. Dəyişən parametrlər (...) istifadə etmək — istənilən sayda arqument ötürməyə imkan verir və funksiyada onların ötürülüb-ötürülmədiyini yoxlamaq və lazım gəldikdə standart dəyərlər təyin etmək.
func nümunə(args ...int) {
    var val int
    if len(args) > 0 {
        val = args[0]
    } else {
        val = 42 // standart dəyər
    }
    fmt.Println(val)
}
  1. Parametrlərlə struktur ötürmək — parametrli struktur yaradılır və sahələr doldurulmayıbsa, funksiyada standart dəyərlər təyin edilir.
type Config struct {
    Param int
}

func nümunə(cfg Config) {
    if cfg.Param == 0 {
        cfg.Param = 42 // standart dəyər
    }
    fmt.Println(cfg.Param)
}
  1. İşarəçilər və nil yoxlaması istifadə etmək — parametr işarəçi kimi ötürülürsə, onun ötürülüb-ötürülmədiyini yoxlamaq və standart dəyər təyin etmək olar.

Beləliklə, Go-da adətən standart parametrlərin davranışını funksiyanın içində əlavə yoxlamalar vasitəsilə həyata keçirirlər, çünki standart parametrlər üçün sintaksis mövcud deyil.