אופרטור קריאה בטוחה
חלק מהיחידה יסודות במסלול ה-Kotlin של Coddy. שיעור 14 מתוך 93.
כשיש לך משתנה שניתן להיות null, אי אפשר לקרוא ישירות למתודות שלו או לגשת למאפיינים שלו: המהדר לא יאפשר זאת כי הערך עשוי להיות null. אופרטור הקריאה הבטוחה ?. פותר את הבעיה הזאת באלגנטיות.
במקום להשתמש בנקודה רגילה ., משתמשים ב-?. כדי לגשת בבטחה לחברים מסוג שניתן להיות null:
fun main() {
val name: String? = "Alice"
val length = name?.length // מחזיר 5
println(length)
val nullName: String? = null
val nullLength = nullName?.length // מחזיר null (בלי קריסה!)
println(nullLength)
}אופרטור הקריאה הבטוחה בודק אם הערך הוא null לפני גישה למאפיין או למתודה. אם הערך הוא null, הביטוי כולו מחזיר null במקום לקרוס. אם הערך קיים, הוא פועל בדיוק כמו קריאה רגילה.
אפשר גם לשרשר כמה קריאות בטוחות זו לזו:
fun main() {
val text: String? = "Hello"
val result = text?.uppercase()?.length
println(result) // מדפיס: 5
}אם חלק כלשהו בשרשרת הוא null, הביטוי כולו מחזיר null בבטחה מבלי להשליך שגיאה.
אתגר
קלניתן לך המשתנה הבא שיכול להיות null:
val message: String? = "Kotlin"השתמש באופרטור קריאה בטוחה כדי:
- לקבל את האורך של
messageולהדפיס אותו - להמיר את
messageלאותיות רישיות ולהדפיס את התוצאה
לאחר מכן, צור משתנה נוסף שיכול להיות null:
val empty: String? = nullהשתמש באופרטור קריאה בטוחה כדי לקבל את האורך של empty ולהדפיס אותו.
כל תוצאה צריכה להיות מודפסת בשורה נפרדת. זכור: אופרטור הקריאה הבטוחה מחזיר
nullכשהערך הואnull.
נסו בעצמכם
fun main() {
val message: String? = "Kotlin"
// TODO: השתמשו באופרטור הקריאה הבטוחה כדי לקבל את האורך של message ולהדפיס אותו
// TODO: השתמשו באופרטור הקריאה הבטוחה כדי להמיר את message לאותיות גדולות ולהדפיס את התוצאה
val empty: String? = null
// TODO: השתמשו באופרטור הקריאה הבטוחה כדי לקבל את האורך של empty ולהדפיס אותו
}השיעור הזה כולל חידון קצר. התחילו את השיעור כדי לענות עליו ולעקוב אחרי ההתקדמות.
כל השיעורים ביחידה יסודות
7קלט/פלט בסיסיים
פונקציית Printlnתבניות מחרוזתקלט באמצעות ReadLineהמרת טיפוסיםסיכום – שנים עד הפרישהסיכום – אמת או שקר10פונקציות
הכרזה על פונקציהפרמטרים וארגומנטיםערכי החזרהארגומנטים בעלי שםערכי ברירת מחדלפונקציות עם ביטוי יחידחזרה – פונקציית Sigmaחזרה – פונקציית אימות3אפשרות לערך null
מהי בטיחות מפני nullטיפוסים שיכולים להיות nullאופרטור קריאה בטוחהאופרטור אלביסיסודות אתגר הפונקציותאופרטור ההבטחה לאי־nullסיכום – גישה בטוחה9לולאות
לולאת forלולאת whileלולאת do-whilebreakcontinueטווחים בלולאותלולאה מקוננתחזרה – עצרתחזרה – קלט דינמיתרגלו בעצמכם: Kotlin אונליין