Sobes.tech
Junior — Middle

Šta sprečava korišćenje preopterećenja metoda koji se razlikuju samo po tipu vraćenog rezultata?

sobes.tech АИ

Одговор од АИ

Preopterećenje metoda koji se razlikuju samo po tipu povratne vrijednosti nije moguće, jer kompajler ne može jednoznačno odrediti koji metod pozvati, oslanjajući se samo na tip povratne vrijednosti. Pri pozivu metode, kompajler gleda na ime metode i tipove parametara, ali ne i na tip povratne vrijednosti.

Na primjer, ako postoje dvije metode:

func getValue() -> Int { ... }
func getValue() -> String { ... }

Pri pozivu getValue(), kompajler neće moći razumjeti koju verziju pozvati, jer se potpisi metoda podudaraju po imenu i parametrima (nema), a razlika je samo u tipu povratne vrijednosti.

Stoga, za preopterećenje metoda, potrebno ih je razlikovati po broju ili tipovima parametara, a ne po tipu povratne vrijednosti.