Menu
Coddy logo textTech

אופרטור ההבטחה לאי־null

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

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

fun main() {
    val name: String? = "Alice"
    val length = name!!.length  // ממיר את String? ל-String
    println(length)  // מדפיס: 5
}

האופרטור !! ממיר טיפוס שיכול להיות null למקבילו שאינו יכול להיות null. עם זאת, אם הערך אכן null, התוכנית שלך תקרוס עם NullPointerException:

fun main() {
    val name: String? = null
    val length = name!!.length  // קורס כאן!
}

מתי להשתמש בו: השתמשו ב־!! רק כאשר יש לכם לוגיקה שמבטיחה שהערך אינו יכול להיות null, אך המהדר אינו יכול לאמת זאת. ברוב המקרים, העדיפו קריאות בטוחות ?. או את אופרטור אלביס ?: במקום זאת. הצהרת אי־null צריכה להיות המוצא האחרון שלכם, ולא הבחירה הראשונה.

challenge icon

אתגר

קל

כתבו פונקציה getUppercaseLength שמקבלת פרמטר text ומחזירה את האורך של הגרסה שלו באותיות גדולות.

הפונקציה מקבלת ערך מחרוזת שאינו null, אך סוג הפרמטר הוא nullable (String?). השתמשו באופרטור ההצהרה שאינו null !! כדי להמיר אותו לסוג שאינו nullable, ואז שרשרו את המתודה uppercase() וקבלו את length.

פרמטרים:

  • text (String?): מחרוזת nullable שמובטח כי היא מכילה ערך

ערך מוחזר: האורך של גרסת הטקסט באותיות גדולות (Int)

הערה: באתגר הזה, הקלט תמיד יהיה מחרוזת תקינה, ולעולם לא null. הדבר מדמה מצב שבו ידוע לכם שהערך קיים, אך המהדר אינו יכול לוודא זאת.

נסו בעצמכם

fun getUppercaseLength(text: String?): Int {
    // כתבו כאן קוד
}
quiz iconבחנו את עצמכם

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

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

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