Sobes.tech
Junior — Middle

Mi akadályozza meg, hogy csak a visszatérési típusban különböző metódusokat túlterheljük?

sobes.tech MI

Válasz az MI-től

A csak a visszatérési típus szerint különböző metódusok túlterhelése nem lehetséges, mert a fordító nem tud egyértelműen meghatározni, hogy melyik metódust hívja meg, kizárólag a visszatérési típus alapján. Egy metódus hívásakor a fordító a metódus nevét és a paraméterek típusait nézi, de nem a visszatérési típust.

Például, ha két metódus van:

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

A getValue() hívásakor a fordító nem fogja tudni, melyik verziót hívja meg, mivel a metódus szignatúrák megegyeznek név és paraméterek szerint (egyik sem), és csak a visszatérési típusban van különbség.

Ezért a metódusok túlterheléséhez szükséges őket a paraméterek számával vagy típusával megkülönböztetni, nem pedig a visszatérési típussal.