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ó visibilitypublic, đượ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.