Ta khai báo một hàm ở trong Solidity như sau:
function eatHamburgers(string memory _name, uint _amount) public {
}
Info
Solidity có hỗ trợ function overload.
Function Visibility
Hàm trên có visibility là public
, được đặt ở sau danh sách các tham số.
Mặc định, hàm sẽ luôn có function visibility là public
. Tuy nhiên, ta nên đặt function visibility cho hàm là private
như là một good practice và chỉ public hàm khi nào cần thiết.
Convention
Đối với các hàm private, ta cũng nên đặt tên hàm bắt đầu bằng ký tự
_
.
Return Values
Để trả về dữ liệu, ta cần khai báo thêm kiểu dữ liệu trả về:
string greeting = "What's up dog";
function sayHello() public returns (string memory) {
return greeting;
}
Handling Multiple Return Values
Solidity cũng hỗ trợ tính năng destructuring để xử lý nhiều giá trị trả về tương tự với JS:
function multipleReturns() internal returns(uint a, uint b, uint c) {
return (1, 2, 3);
}
function processMultipleReturns() external {
uint a;
uint b;
uint c;
// This is how you do multiple assignment:
(a, b, c) = multipleReturns();
}
// Or if we only cared about one of the values:
function getLastReturnValue() external {
uint c;
// We can just leave the other fields blank:
(,,c) = multipleReturns();
}
Ta có thể bỏ qua một giá trị nào đó bằng cách để trống.