التراجع الصريح
جزء من قسم الأساسيات في رحلة 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 {
// اكتب حلك هنا.
}
}يتضمن هذا الدرس اختبارًا قصيرًا. ابدأ الدرس للإجابة عليه وتتبّع تقدمك.
جميع دروس الأساسيات
2المتغيرات والأنواع
الأعداد الصحيحة غير الموقعةالمدخلات والمخرجاتالأعداد الصحيحة الموقعةالقيم المنطقيةالسلاسل النصية في الذاكرةبطاقة الملف الشخصي5الدوال
معاملات الدوالإرجاع القيمالدوال النقيةاستدعاءات الدوال المساعدةالحسابات القابلة لإعادة الاستخدامتدرّب بنفسك: Playground لـ Solidity