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