Menu
CoddyTech

אופרטור קריאה בטוחה

חלק מהיחידה יסודות במסלול ה-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 מבלי לזרוק שגיאה.

challenge icon

אתגר

קל

המשתנה הבא עשוי להכיל ערך null:

val message: String? = "Kotlin"

השתמש באופרטור קריאה בטוחה כדי:

  1. לקבל את האורך של message ולהדפיס אותו
  2. להמיר את 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 ולהדפיס אותו
}
quiz iconבחנו את עצמכם

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

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

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