堅牢性-関数のオーバーロード

同じスコープ内の同じ関数名に対して複数の定義を持つことができます。関数の定義は、引数リスト内の引数のタイプや数によって互いに異なる必要があります。戻り値の型のみが異なる関数宣言をオーバーロードすることはできません。

次の例は、Solidityでの関数のオーバーロードの概念を示しています。

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

Solidity First Applicationの章に記載されている手順を使用して、上記のプログラムを実行します。

最初にcallSumWithTwoArgumentsボタンをクリックしてから、callSumWithThreeArgumentsボタンをクリックして結果を確認します。

出力

0: uint256: 3
0: uint256: 6