Solidność - przeciążenie funkcji

Możesz mieć wiele definicji dla tej samej nazwy funkcji w tym samym zakresie. Definicja funkcji musi różnić się od siebie typami i / lub liczbą argumentów na liście argumentów. Nie można przeciążać deklaracji funkcji, które różnią się tylko zwracanym typem.

Poniższy przykład ilustruje koncepcję przeciążania funkcji w Solidity.

Przykład

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);
   }
}

Uruchom powyższy program, wykonując kroki opisane w rozdziale Solidity First Application .

Kliknij najpierw przycisk callSumWithTwoArguments, a następnie przycisk callSumWithThreeArguments, aby zobaczyć wynik.

Wynik

0: uint256: 3
0: uint256: 6