Junior — Middle
O que impede usar a sobrecarga de métodos que diferem apenas pelo tipo de resultado devolvido?
sobes.tech IA
Resposta da IA
A sobrecarga de métodos que difere apenas pelo tipo de valor de retorno não é possível, porque o compilador não consegue determinar de forma inequívoca qual método chamar, baseando-se apenas no tipo de resultado de retorno. Ao chamar um método, o compilador observa o nome do método e os tipos de parâmetros, mas não o tipo de retorno.
Por exemplo, se houver dois métodos:
func getValue() -> Int { ... }
func getValue() -> String { ... }
Ao chamar getValue(), o compilador não conseguirá entender qual versão chamar, pois a assinatura dos métodos coincide pelo nome e pelos parâmetros (não há), e a única diferença está no tipo de retorno.
Portanto, para sobrecarregar métodos, é necessário diferenciá-los pelo número ou tipos de parâmetros, e não pelo tipo de retorno.