Điều kiện require
Thuộc phần Nền tảng cơ bản trong hành trình Solidity của Coddy. Bài học 46 trên 53.
Dùng require(condition, message) để từ chối một lệnh gọi khi điều kiện dự kiến không đúng. Nếu điều kiện đúng, chương trình sẽ tiếp tục chạy. Nếu điều kiện không đúng, yêu cầu sẽ hoàn tác lệnh gọi và các thay đổi trạng thái của lệnh gọi đó. Hãy xác thực đầu vào trước khi dùng nó trong một thao tác phụ thuộc vào điều kiện đó.
Các câu lệnh trong đoạn trích này chạy bên trong hàm main đã cho.
uint256 quantity = 7;
require(quantity > 0, "Positive quantity required");
console.log(quantity * 3);Giá trị bảy vượt qua bước kiểm tra số lượng dương, nên phép tính in ra hai mươi mốt. Nếu quantity bằng không, lời gọi sẽ hoàn tác thay vào đó. Thông báo giải thích yêu cầu chưa được đáp ứng; thông báo không được in ra khi lời gọi thành công.
require tiếp tục khi điều kiện đúng và hoàn tác khi điều kiện sai.
Thử thách
DễYêu cầu divisor lớn hơn không và đưa ra thông báo lỗi hữu ích. Sau đó, in total chia cho divisor. Các bài kiểm tra đầu ra hiển thị dùng divisor dương, nhưng code của bạn vẫn phải có điều kiện kiểm tra.
Các bài kiểm tra truyền đối số cho main theo thứ tự này: uint256 total, uint256 divisor. Mỗi bài kiểm tra bắt đầu với trạng thái hợp đồng mới.
Dùng console.log để in đầu ra được yêu cầu. Chỉ in các giá trị được yêu cầu, mỗi giá trị trên một dòng, không thêm nhãn trừ khi đề bài yêu cầu.
Tự làm thử
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.26;
import "forge-std/console.sol";
contract Main {
function main(uint256 total, uint256 divisor) external view {
// Viết lời giải của bạn ở đây.
}
}Bài học này có một bài trắc nghiệm ngắn. Bắt đầu bài học để trả lời và theo dõi tiến độ.
Tất cả bài học trong Nền tảng cơ bản
10Quy tắc hợp đồng
Điều kiện requireLệnh revert tường minhSự kiệnPhạm vi hiển thị và quyền riêng tưCập nhật có kiểm traTự luyện tập: Playground Solidity