> For the complete documentation index, see [llms.txt](https://chihaolu.gitbook.io/all-in-one-solidity/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://chihaolu.gitbook.io/all-in-one-solidity/part-i-basic/chapter-5-han-shi-function/function-overloading.md).

# 【Function Overloading】

在同一樣一個作用域中我們可對同樣（名稱、可視性、回傳值相同）的函數 進行 Function Overloading，此時根據我們輸入的參數數量，或者是輸入的參數型態不同，Solidity 會自動去尋找符合的函數執行。

```solidity
pragma solidity ^0.8.11;

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