Solidity - ฟังก์ชันโอเวอร์โหลด

คุณสามารถกำหนดได้หลายคำจำกัดความสำหรับชื่อฟังก์ชันเดียวกันในขอบเขตเดียวกัน นิยามของฟังก์ชันจะต้องแตกต่างกันตามประเภทและ / หรือจำนวนอาร์กิวเมนต์ในรายการอาร์กิวเมนต์ คุณไม่สามารถโอเวอร์โหลดการประกาศฟังก์ชันที่แตกต่างกันตามประเภทการส่งคืนเท่านั้น

ตัวอย่างต่อไปนี้แสดงแนวคิดของฟังก์ชันที่ทำงานหนักเกินไปใน 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