Menu
Coddy logo textTech

טיפוסים מנוּיִים

חלק מהיחידה יסודות במסלול ה-Solidity של Coddy. שיעור 44 מתוך 53.

enum מגדיר קבוצה קטנה של אפשרויות בעלות שמות. יש להצהיר על החברים שלו לפי הסדר, ואז להפנות לחבר בתור TypeName.MemberName. לחבר הראשון יש ערך מספרי אפס, לבא אחריו יש ערך אחד, וכן הלאה. אפשרויות בעלות שמות הופכות סטטוס לקריא יותר ממספרים ללא הסבר.

הצהירו עליו בהיקף החוזה:

enum Phase { Waiting, Packing, Complete }

השתמשו בו בתוך הפונקציה main שסופקה:

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

בהצהרה מופיעים Waiting, Packing ו-Complete. Packing הוא האיבר השני ולכן מומר ל-1. המרה של מספר שרירותי ל-enum עלולה להיכשל כשהמספר מחוץ לטווח שהוגדר עבורו, לכן השתמש כאן באיברים בעלי שמות.

לאיברי enum יש ערכים מספריים שמתחילים ב-0, לפי סדר ההצהרה.

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בחנו את עצמכם

השיעור הזה כולל חידון קצר. התחילו את השיעור כדי לענות עליו ולעקוב אחרי ההתקדמות.

כל השיעורים ביחידה יסודות

תרגלו בעצמכם: Solidity אונליין