ביטול מפורש
חלק מהיחידה יסודות במסלול ה-Solidity של Coddy. שיעור 47 מתוך 53.
ענף if יכול לקרוא ל-revert(message) כדי לדחות במפורש מקרה לא תקין. הדבר שימושי כאשר קל יותר לקרוא את תנאי הדחייה מאשר את התנאי ההפוך שלו. יש למקם את העבודה הרגילה אחרי בדיקת הסף, כך שהיא תרוץ רק עבור קלט תקין.
ההוראות בקטע הזה רצות בתוך הפונקציה main שסופקה.
uint256 chosen = 4;
if (chosen > 6) { revert("Choice too large"); }
console.log(chosen + 2);ארבע אינו עולה על שש, ולכן ענף הדחייה מדולג. הביצוע מגיע לקריאה למסוף. revert מפורש דוחה את הקריאה בדיוק כמו require שנכשל; זו אינה דרך להדפיס תוצאה רגילה.
revert מסיים את הקריאה הנוכחית בכישלון במקום להמשיך כרגיל.
אתגר
קלדחה ערך שמעל 50 באמצעות revert והודעה מועילה. עבור קלט שהתקבל, הדפס 50 פחות הערך. כל בדיקות הפלט הן בטווח.
הבדיקות מעבירות ארגומנטים אל main בסדר הזה: uint256 value. כל בדיקה מתחילה עם מצב חוזה חדש.
השתמש ב־console.log עבור הפלט המבוקש. הדפס רק את הערכים המבוקשים, אחד בכל שורה, ללא תוויות נוספות אלא אם המשימה מציינת אותן.
נסו בעצמכם
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.26;
import "forge-std/console.sol";
contract Main {
function main(uint256 value) external view {
// כתבו כאן את הפתרון שלכם.
}
}השיעור הזה כולל חידון קצר. התחילו את השיעור כדי לענות עליו ולעקוב אחרי ההתקדמות.
כל השיעורים ביחידה יסודות
תרגלו בעצמכם: Solidity אונליין