שימוש ב-Enums במשתנים
חלק מהיחידה לוגיקה וזרימת התוכנית במסלול ה-Dart של Coddy. שיעור 60 מתוך 65.
עכשיו, כשאתם יודעים להגדיר enums, בואו נלמד איך להשתמש בהם בפועל בתוכניות שלכם. לאחר שיצרתם enum, תוכלו להכריז על משתנים מסוג enum זה ולהקצות להם ערכים מסוימים.
כדי להצהיר על משתנה מסוג enum, יש לציין את שם ה-enum ואחריו את שם המשתנה, בדיוק כמו בכל סוג נתונים אחר:
Weather todayWeather = Weather.sunny;שימו לב לאופן שבו ניגשים לערכי enum באמצעות סימון נקודה: Weather.sunny. כך אומרים ל-Dart שרוצים את הערך sunny מתוך ה-enum Weather.
אפשר לשנות את הערך של המשתנה לכל ערך תקף אחר של enum:
todayWeather = Weather.rainy;
todayWeather = Weather.cloudy;היתרון בשימוש במשתני enum הוא ש-Dart מבטיחה שאפשר להקצות להם רק ערכי enum תקפים. אי אפשר להקצות בטעות את "stormy" או ערך לא תקף אחר למשתנה Weather, וכך נמנעות שגיאות תכנות נפוצות והקוד שלך נעשה אמין יותר.
אתגר
קלצרו תוכנית שמנהלת מערכת פשוטה למעקב אחר משימות באמצעות מונים ומשתנים. עליכם:
- להגדיר מונה בשם
TaskStatusעם הערכים הבאים:todo,inProgress,testing,completedו־cancelled - ליצור משתנה בשם
task1StatusמסוגTaskStatusולהקצות לו את הערךTaskStatus.todo - ליצור משתנה בשם
task2StatusמסוגTaskStatusולהקצות לו את הערךTaskStatus.inProgress - ליצור משתנה בשם
task3StatusמסוגTaskStatusולהקצות לו את הערךTaskStatus.completed - להדפיס את המצב ההתחלתי של כל המשימות בפורמט המדויק:
Task 1 status: TaskStatus.todo - להדפיס את המצב ההתחלתי של משימה 2 בפורמט המדויק:
Task 2 status: TaskStatus.inProgress - להדפיס את המצב ההתחלתי של משימה 3 בפורמט המדויק:
Task 3 status: TaskStatus.completed - לעדכן את
task1Statusל־TaskStatus.inProgress - לעדכן את
task2Statusל־TaskStatus.testing - להדפיס את המצב המעודכן של משימה 1 בפורמט המדויק:
Updated Task 1 status: TaskStatus.inProgress - להדפיס את המצב המעודכן של משימה 2 בפורמט המדויק:
Updated Task 2 status: TaskStatus.testing - להדפיס את המצב הסופי של משימה 3 בפורמט המדויק:
Final Task 3 status: TaskStatus.completed
התוכנית שלכם צריכה להדגים הגדרה נכונה של מונה באמצעות מילת המפתח enum, הכרזה על משתנים מסוגי מונה, גישה לערכי מונה באמצעות סימון בנקודה ועדכון משתני מונה. הקפידו לפעול לפי מוסכמות השמות של Dart, שבהן שם המונה מתחיל באות גדולה וערכי המונה נכתבים באותיות קטנות.
נסו בעצמכם
import 'dart:io';
// TODO: הגדירו כאן את ה-enum TaskStatus
void main() {
// TODO: כתבו כאן את הקוד שלכם
// 1. צרו משתנה בשם task1Status והקצו לו את TaskStatus.todo
// 2. צרו משתנה בשם task2Status והקצו לו את TaskStatus.inProgress
// 3. צרו משתנה בשם task3Status והקצו לו את TaskStatus.completed
// 4. הדפיסו את המצב ההתחלתי של כל המשימות
// 5. עדכנו את מצבי המשימות כנדרש
// 6. הדפיסו את המצבים המעודכנים והסופיים
}השיעור הזה כולל חידון קצר. התחילו את השיעור כדי לענות עליו ולעקוב אחרי ההתקדמות.
כל השיעורים ביחידה לוגיקה וזרימת התוכנית
1מניפולציות מתקדמות ברשימות
מאפייני רשימה: ראשון ואחרוןמצב הרשימה: isEmpty ו-isNotEmpהיפוך רשימההוספה לרשימה: insertהסרת פריטים מרשימה: removeWhereחיפוש ברשימה: indexOfמיון רשימהערבוב רשימהסיכום – מארגן רשימות4מניפולציה מתקדמת של Map
מעבר על Mapבדיקה אם מפתחות וערכים קיימיםמאפייני Map: מפתחות וערכיםהוספה מותנית: putIfAbsentהסרת רשומות מ־MapMaps מקונניםסיכום – עדכון מלאי2פעולות פונקציונליות על רשימות
טרנספורמציה באמצעות 'map'סינון באמצעות 'where'שימוש ב-'.toList()'בדיקת תנאים באמצעות 'any'תנאים באמצעות 'every'איתור באמצעות 'firstWhere'סיכום – סינון נתונים5פרויקט: חישוב עגלת קניות
הגדרת הפרויקטהוספת פריטים לעגלה3קבוצות
מהי קבוצה?יצירת קבוצההוספה והסרה מקבוצותבדיקת נוכחות של איברים בקבוצההמרת רשימה לקבוצהאיחוד קבוצותחיתוך קבוצותהפרש קבוצותסיכום – רשימת אורחים ייחודית6טיפול בסיסי בשגיאות
מהן חריגות?בלוק ה-try-catchתפיסת חריגות באמצעות onבלוק ה-finallyהשלכת חריגהסיכום – חלוקה בטוחה9טיפוסי מנייה (Enums)
מה הם Enums?הגדרת Enum פשוטשימוש ב-Enums במשתניםEnums במשפטי 'switch'סיכום – רמזורתרגלו בעצמכם: קומפיילר Dart אונליין