Solidez - Sobrecarga de função

Você pode ter várias definições para o mesmo nome de função no mesmo escopo. A definição da função deve diferir uma da outra pelos tipos e / ou número de argumentos na lista de argumentos. Você não pode sobrecarregar as declarações de função que diferem apenas pelo tipo de retorno.

O exemplo a seguir mostra o conceito de uma sobrecarga de função no Solidity.

Exemplo

pragma solidity ^0.5.0;

contract Test {
   function getSum(uint a, uint b) public pure returns(uint){      
      return a + b;
   }
   function getSum(uint a, uint b, uint c) public pure returns(uint){      
      return a + b + c;
   }
   function callSumWithTwoArguments() public pure returns(uint){
      return getSum(1,2);
   }
   function callSumWithThreeArguments() public pure returns(uint){
      return getSum(1,2,3);
   }
}

Execute o programa acima usando as etapas fornecidas no capítulo Aplicativo Solidity First .

Clique no botão callSumWithTwoArguments primeiro e depois no botão callSumWithThreeArguments para ver o resultado.

Resultado

0: uint256: 3
0: uint256: 6