Jawne cofnięcia
Część sekcji Podstawy ścieżki Solidity w Coddy. Lekcja 47 z 53.
Gałąź if może wywołać revert(message), aby jawnie odrzucić nieprawidłowy przypadek. Jest to przydatne, gdy warunek odrzucenia jest łatwiejszy do odczytania niż jego przeciwieństwo. Umieść zwykłe operacje po warunku ochronnym, aby były wykonywane tylko dla akceptowalnych danych wejściowych.
Instrukcje w tym fragmencie są wykonywane wewnątrz podanej funkcji main.
uint256 chosen = 4;
if (chosen > 6) { revert("Choice too large"); }
console.log(chosen + 2);Cztery nie przekracza sześciu, więc gałąź odrzucająca zostaje pominięta. Wykonywanie dociera do wywołania konsoli. Jawne wycofanie odrzuca wywołanie tak samo jak nieudane require; nie służy do wyświetlania zwykłego wyniku.
revert kończy bieżące wywołanie niepowodzeniem zamiast normalnie kontynuować.
Wyzwanie
ŁatwyOdrzuć wartość powyżej 50 za pomocą revert i podaj przydatny komunikat. Dla zaakceptowanego wejścia wypisz 50 minus wartość. Wszystkie dane wyjściowe testów mieszczą się w zakresie.
Testy przekazują argumenty do main w tej kolejności: uint256 value. Każdy test rozpoczyna się od świeżego stanu kontraktu.
Użyj console.log, aby uzyskać wymagane dane wyjściowe. Wypisz tylko wymagane wartości, po jednej w wierszu, bez dodatkowych etykiet, chyba że zadanie ich wymaga.
Spróbuj swoich sił
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.26;
import "forge-std/console.sol";
contract Main {
function main(uint256 value) external view {
// Wpisz tutaj swoje rozwiązanie.
}
}Ta lekcja zawiera krótki quiz. Zacznij lekcję, żeby na niego odpowiedzieć i śledzić swoje postępy.
Wszystkie lekcje w sekcji Podstawy
10Reguły kontraktów
Wymagane warunkiJawne cofnięciaZdarzeniaWidoczność i prywatnośćAktualizacje z kontrolą2Zmienne i typy
Liczby całkowite bez znakuWejście i wyjścieLiczby całkowite ze znakiemWartości logiczneŁańcuchy znaków w pamięciKarta profilu5Funkcje
Parametry funkcjiZwracanie wartościFunkcje czysteWywołania pomocniczeWielokrotnego użytku obliczeniaPoćwicz samodzielnie: Edytor online Solidity