Menu
Coddy logo textTech

טיפוסים שיכולים להיות null

חלק מהיחידה יסודות במסלול ה-Kotlin של Coddy. שיעור 13 מתוך 93.

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

כדי להפוך טיפוס לניתן להקצאת ערך null, הוסף ? אחרי שם הטיפוס:

fun main() {
    var middleName: String? = "Marie"
    middleName = null  // זה מותר עכשיו!
    
    val age: Int? = null  // יכול להכיל Int או null
}

הסימן ? אומר ל-Kotlin: "המשתנה הזה עשוי להיות null, אז יש להיזהר כשמשתמשים בו." בלי ?, הטיפוס אינו יכול להיות null ולעולם לא יכול להכיל null.

חשוב: טיפוסים שיכולים להיות null וטיפוסים שאינם יכולים להיות null הם שונים. אי אפשר לשייך ישירות ערך שיכול להיות null למשתנה שאינו יכול להיות null:

fun main() {
    val nullableName: String? = "Alice"
    val regularName: String = nullableName  // שגיאה!
}

ההבחנה הזו מכוונת. היא מאלצת אותך לטפל באפשרות שהערך הוא null לפני השימוש בו. בשיעורים הבאים תלמד את הדרכים הבטוחות ש-Kotlin מספקת לעבודה עם ערכים שניתן להגדיר כ-null.

challenge icon

אתגר

קל

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

  • String שיכול לקבל ערך null ושמו nickname, עם הערך "Shadow"
  • Int שיכול לקבל ערך null ושמו age, עם הערך null
  • Double שיכול לקבל ערך null ושמו balance, עם הערך 99.5

לאחר מכן הדפס את כל שלושת הערכים בשורות נפרדות באמצעות println().

זכור להשתמש ב-? אחרי שם הטיפוס כדי לאפשר לו לקבל ערך null. הדפסת ערך null תציג את המילה null.

נסו בעצמכם

fun main() {
    // TODO: הכריזו על המשתנים הבאים שיכולים להכיל null:
    // 1. משתנה String שיכול להכיל null בשם 'nickname' עם הערך "Shadow"
    // 2. משתנה Int שיכול להכיל null בשם 'age' עם הערך null
    // 3. משתנה Double שיכול להכיל null בשם 'balance' עם הערך 99.5
    
    // לאחר מכן הדפיסו את שלושת הערכים, כל אחד בשורה נפרדת
    
}
quiz iconבחנו את עצמכם

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

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

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