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:
- 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)
}
- 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)
}
- İş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.