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