בטיחות בסיסית מול null
חלק מהיחידה יסודות במסלול ה-Dart של Coddy. שיעור 14 מתוך 94.
בטיחות null עוזרת למנוע קריסות בלתי צפויות של האפליקציה באמצעות שליטה במשתנים שיכולים להיות ריקים (null).
כברירת מחדל, משתנים חייבים להכיל ערך:
void main() {
String name = 'Dart';
print(name); // פלט: Dart
// זה יגרום לבעיות:
// name = null; // לא מותר
}הוסף ? אחרי הטיפוס כדי לאפשר ערכי null:
void main() {
String? name = 'Dart';
print(name); // פלט: Dart
// עכשיו אפשר להציב null
name = null;
print(name); // פלט: null
}אפשר להצהיר על משתנים שניתנים לערך null מכל סוג:
void main() {
int? age; // ללא ערך התחלתי, ברירת המחדל היא null
double? price = 19.99;
bool? isAvailable = true;
print(age); // פלט: null
print(price); // פלט: 19.99
print(isAvailable); // פלט: true
// אפשר לשנות כל אחד מאלה ל-null
price = null;
isAvailable = null;
}
בטיחות מול ערכי null עוזרת להגן על האפליקציה שלך מפני קריסות בלתי צפויות שמתרחשות כשהקוד שלך מנסה להשתמש בערכי null בפעולות.
אתגר
מתחיליםצרו תוכנית ב-Dart שמדגימה בטיחות בסיסית של null באמצעות האופרטור ?:
- הכריזו על משתנה מסוג String בשם
usernameוהגדירו אותו ל-nullבאמצעות אופרטור בטיחות null?(String?) - הכריזו על משתנה מסוג int בשם
userAgeוהגדירו אותו ל-nullבאמצעות אופרטור בטיחות null - הדפיסו את שני המשתנים עם תוויות בפורמט הבא בדיוק:
Username: null
User age: nullלאחר מכן:
- הקצו את הערך
"DartLearner"למשתנהusername - הקצו את הערך
25למשתנהuserAge - הדפיסו שוב את שני המשתנים באותו פורמט בדיוק כמו קודם
הפלט שלכם חייב להתאים לפורמט המדויק שמוצג למעלה.
נסו בעצמכם
void main() {
// הכריזו כאן על המשתנים שלכם שיכולים להכיל null
String? username = ?;
int? userAge = ?;
// הדפיסו את הערכים ההתחלתיים עם תוויות
print("Username: " + username.toString());
print("User age: " + userAge.toString());
// הקצו ערכים חדשים למשתנים
username = ?;
userAge = ?;
// הדפיסו את הערכים המעודכנים עם אותן תוויות
print("Username: " + username.toString());
print("User age: " + userAge.toString());
}השיעור הזה כולל חידון קצר. התחילו את השיעור כדי לענות עליו ולעקוב אחרי ההתקדמות.
כל השיעורים ביחידה יסודות
7עבודה עם מחרוזות
שרשור מחרוזותאינטרפולציה של מחרוזותמחרוזות מרובות שורותמאפייני מחרוזותשיטות בסיסיות למחרוזות10אוספים - יסודות המפות
מהן מפות?יצירת מפהגישה לערכים לפי מפתחזוגות מפתח-ערךקבלת גודל המפהקבלת המפתחותקבלת הערכיםבדיקה אם מפתח קיים2משתנים וטיפוסי נתונים בסיסיים
מהם משתנים?מחרוזותמספרים שלמים (int)מספרים מסוג double (double)ערכים בוליאניים (bool)הסקת טיפוס באמצעות 'var'משתנים סופייםמשתנים קבועיםמוסכמות למתן שמותבטיחות בסיסית מול nullסיכום – הכרזה על משתנים8זרימת בקרה – לולאות
לולאת 'for'לולאת 'while'לולאת 'do-while'שימוש ב-'break' בלולאותשימוש ב-'continue' בלולאותסיכום – חזרה על קוד3אופרטורים חלק 1
אופרטורים אריתמטייםחלוקת מספרים שלמיםאופרטור מודולוהגדלה והקטנהקיצורי השמהסיכום - חישובים פשוטים6זרימת בקרה - קבלת החלטות
הוראת 'if'הוראת 'else'הוראת 'else if'חזרה - החלטות פשוטותהוראות 'if' מקוננותהוראת 'switch'9אוספים - יסודות הרשימות
מהן רשימות?יצירת רשימהגישה לפי אינדקסקבלת אורך הרשימההוספת איבריםהסרת איבריםבדיקה אם הרשימה ריקהמעבר על רשימהתרגלו בעצמכם: קומפיילר Dart אונליין