Junior — Middle
Faqat qaytariladigan natija turiga farq qiladigan metodlarni ortiqcha yuklashni nima to‘xtatadi?
sobes.tech AI
AIdan javob
Yalnızca geri dönüş tipinə görə fərqlənən metodların yüklənməsi mümkün deyil, çünki tərtibçi yalnız geri dönüş nəticəsinin tipinə əsaslanaraq hansı metodun çağırılacağını dəqiq müəyyən edə bilməz. Bir metod çağırıldıqda, tərtibçi metodun adını və parametr növlərini nəzərdən keçirir, amma geri dönüş tipinə baxmır.
Məsələn, iki metod varsa:
func getValue() -> Int { ... }
func getValue() -> String { ... }
getValue() çağırıldıqda, tərtibçi hansı versiyanı çağıracağını başa düşə bilməz, çünki metodların imzaları ad və parametrlər baxımından üst-üstə düşür (heç biri yoxdur), və fərq yalnız geri dönüş tipindədir.
Bu səbəbdən, metodların yüklənməsi üçün onları parametr sayı və ya növləri ilə fərqləndirmək lazımdır, geri dönüş tipi ilə deyil.