Revert Eksplisit
Termasuk bagian Dasar-Dasar dalam perjalanan Solidity di Coddy. Pelajaran 47 dari 53.
Percabangan if dapat memanggil revert(message) untuk secara eksplisit menolak kasus yang tidak valid. Ini berguna ketika kondisi penolakan lebih mudah dibaca daripada kebalikannya. Letakkan pekerjaan normal setelah guard agar hanya berjalan untuk input yang dapat diterima.
Pernyataan dalam cuplikan ini berjalan di dalam fungsi main yang disediakan.
uint256 chosen = 4;
if (chosen > 6) { revert("Choice too large"); }
console.log(chosen + 2);Empat tidak melebihi enam, jadi cabang penolakan dilewati. Eksekusi mencapai pemanggilan console. Revert eksplisit menolak pemanggilan seperti require yang gagal; ini bukan cara untuk mencetak hasil biasa.
revert mengakhiri pemanggilan saat ini dengan kegagalan, bukan melanjutkannya secara normal.
Tantangan
MudahTolak nilai di atas 50 dengan revert dan pesan yang bermanfaat. Untuk input yang diterima, cetak 50 dikurangi nilai. Semua output pengujian berada dalam rentang.
Pengujian memberikan argumen ke main dengan urutan ini: uint256 value. Setiap pengujian dimulai dengan state contract yang baru.
Gunakan console.log untuk output yang diminta. Cetak hanya nilai yang diminta, satu per baris, tanpa label tambahan kecuali jika tugas memintanya.
Coba sendiri
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.26;
import "forge-std/console.sol";
contract Main {
function main(uint256 value) external view {
// Tulis solusimu di sini.
}
}Pelajaran ini berisi kuis singkat. Mulai pelajarannya untuk menjawab kuis dan melacak progresmu.
Semua pelajaran di Dasar-Dasar
10Aturan Kontrak
Kondisi requireRevert EksplisitEventVisibilitas dan PrivasiPembaruan dengan Pemeriksaan2Variabel dan Tipe Data
Integer Tak BertandaInput dan OutputInteger BertandaNilai Booleanstring di MemoriKartu Profil5Fungsi
Parameter FungsiMengembalikan NilaiFungsi MurniPemanggilan Fungsi PembantuPerhitungan yang Dapat Digunakan KembaliLatihan sendiri: Playground Solidity