Chuyển đến nội dung chính

Bài 8: Tự học Solidity cơ bản. Private / Public Functions. Thuộc tính của hàm trong ngôn ngữ Solidity

Private & Public

Thuộc tính Private và Public của hàm trong ngôn ngữ Solidity. Trong khoá học online miễn phí Tự học lập trình web3 - Tự học ngôn ngữ lập trình Solidity


Summary for English Visiteruint[] numbers;//private
function _addToArray(uint _number) private {
  
}//public
function addToArray(uint _number) public {
  
}Thank you!


Trong Solidity, các hàm theo mặc định ở trạng thái public. Điều này có nghĩa là bất kỳ ai (hoặc bất kỳ hợp đồng khác) đều có thể gọi hàm public hợp đồng của bạn và thực thi mã của nó.

Rõ ràng điều này không an toàn và điều đó khiến hợp đồng của bạn dễ bị tấn công. Vì vậy, bạn nên đánh dấu các hàm của mình là private và chỉ public các chức năng bạn muốn cung cấp với mọi người. Điều này là rất quan trọng trong việc bảo đảm an toàn cho hợp đồng thông minh, nên phải ghi nhớ kĩ nhé.

Đây là cách khai báo một hàm private:

uint[] numbers;

function _addToArray(uint _number) private {
  numbers.push(_number);
}

Điều này có nghĩa là chỉ các hàm khác trong cùng hợp đồng mới có thể gọi hàm này và chạy chức năng thêm số vào mảng.

Như ví dụ trên, chúng ta thấy từ khóa private sau tên hàm. Và giống như với các tham số tham chiếu, ta cũng quy ước các hàm private bắt đầu tên hàm bằng dấu gạch dưới (_).

Thực hành luôn cho nhớ lâu bạn nhé

Thực hành tạo các hàm publicprivate vào file hocweb3.sol, trong hàm public gọi đến các hàm private. 
Sau khi DEPLOY hãy chạy thử các hàm public, và xem kết quả.

Nếu bạn chưa biết cách TẠO FILE, COMPILER và DEPLOY thì hãy xem lại trong bài giới thiệu nhé. Có hướng dẫn chi tiết ở đó.



BÀI TIẾP THEO: BÀI SỐ 9

HỌC TỪ ĐẦU: BÀI SỐ 1