Sobes.tech
Junior — Middle

Čo bráni používaniu preťaženia metód, ktoré sa líšia iba typom vracaného výsledku?

sobes.tech AI

Odpoveď od AI

Preťažovanie metód, ktoré sa líšia iba typom návratovej hodnoty, nie je možné, pretože prekladač nemôže jednoznačne určiť, ktorú metódu volať, iba na základe typu návratovej hodnoty. Pri volaní metódy sa prekladač pozerá na názov metódy a typy parametrov, ale nie na typ návratovej hodnoty.

Napríklad, ak existujú dve metódy:

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

Pri volaní getValue(), prekladač nebude schopný pochopiť, ktorú verziu volať, pretože podpisy metód sa zhodujú podľa názvu a parametrov (žiadne), a rozdiel je iba v type návratovej hodnoty.

Preto je pre preťaženie metód potrebné ich rozlišovať podľa počtu alebo typov parametrov, nie podľa typu návratovej hodnoty.