Function modifiers arguments
Tự học Solidity bài 31: Function modifiers với arguments. Hàm modifiers có tham số trong SOLIDITY
Summary for English Visiter
mapping (uint => uint) public age;
modifier olderThan(uint _age, uint _userId) {
require(age[_userId] >= _age);
_;
}
function driveCar(uint _userId) public olderThan(16, _userId) {
}
Summary for English Visiter
mapping (uint => uint) public age;
modifier olderThan(uint _age, uint _userId) {
require(age[_userId] >= _age);
_;
}
function driveCar(uint _userId) public olderThan(16, _userId) {
}
Bài học này chúng ta tìm hiểu sâu hơn về công cụ sửa đổi hàm Function modifiers. Trước đây ta đã được tìm hiểu về onlyOwner - giúp chúng ta có thêm những quyền hạn riêng cho người sở hữu hợp đồng. Nhưng cũng có rất nhiều trường hợp để chúng ta sử dụng Function modifiers một cách linh hoạt. Ví dụ như check nhanh những người có đủ 18 tuổi mới được tham gia một chức năng dành cho người lớn chẳng hạn. Nhu cầu như thế thì chúng ta cần truyền tham số cho hàm modifiers. Và hôm nay chúng ta cùng tim hiểu cách thức triển khai nhé.
Công cụ sửa đổi hàm có đối số
Chúng ta đi tìm hiểu về ví dụ sau:
// A mapping luu tru tuoi
mapping (uint => uint) public age;
// Modifier voi requires user co tuoi lon hon tham so age:
modifier olderThan(uint _age, uint _userId) {
require(age[_userId] >= _age);
_;
}
// Phai co tuoi lon hon 18 moi duoc lai xe
// Chung ta goi `olderThan` modifier nhu sau
function driveCar(uint _userId) public olderThan(18, _userId) {
}
Bạn có thể thấy ở đây rằng Function modifiers oldThan nhận các đối số giống như một hàm. Và cách hàm driveCar chuyển các tham số của nó cho oldThan.
Thực hành luôn cho nhớ lâu bạn nhé
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Ố 32
HỌC TỪ ĐẦU: BÀI SỐ 1