Menu
Coddy logo textTech
flag Ar iconالعربيةdown icon

التعدادات

جزء من قسم الأساسيات في رحلة Solidity على Coddy. الدرس 44 من 53.

يُعرِّف التعداد مجموعة صغيرة من الخيارات المُسمّاة. أعلن عن أعضائه بالترتيب، ثم أشر إلى عضو بصيغة TypeName.MemberName. يمتلك العضو الأول قيمة رقمية تساوي صفرًا، والعضو التالي قيمة تساوي واحدًا، وهكذا. تجعل الخيارات المُسمّاة الحالة أسهل قراءةً من الأرقام غير المُفسَّرة.

أعلن عن ذلك على مستوى العقد:

enum Phase { Waiting, Packing, Complete }

استخدمه داخل الدالة main المتوفرة:

Phase phase = Phase.Packing;
console.log(uint256(phase));

يسرد التصريح Waiting وPacking وComplete. وPacking هو العضو الثاني، ولذلك يتحول إلى واحد. يمكن أن يفشل تحويل عدد عشوائي إلى تعداد عندما يكون العدد خارج النطاق المحدد له، لذا استخدم الأعضاء المُسمّاة هنا.

تمتلك أعضاء التعداد قيمًا رقمية تبدأ من الصفر وفق ترتيب التصريح.

challenge icon

التحدي

سهل

عرّف enum Mode بالقيم Idle وRunning وFinished بهذا الترتيب. اختر Running عندما تكون active تساوي true، وإلا فاختر Idle، واطبع القيمة الرقمية.

تمرّر الاختبارات الوسائط إلى main بهذا الترتيب: bool active. يبدأ كل اختبار بحالة عقد جديدة.

استخدم console.log للإخراج المطلوب. اطبع القيم المطلوبة فقط، واحدة في كل سطر، من دون تسميات إضافية ما لم تحدد المهمة خلاف ذلك.

جرّب بنفسك

// SPDX-License-Identifier: MIT
pragma solidity ^0.8.26;
import "forge-std/console.sol";
contract Main {
    function main(bool active) external view {
        // اكتب حلك هنا.
    }
}
quiz iconاختبر نفسك

يتضمن هذا الدرس اختبارًا قصيرًا. ابدأ الدرس للإجابة عليه وتتبّع تقدمك.

جميع دروس الأساسيات

تدرّب بنفسك: Playground لـ Solidity