אופרטור ההבטחה לאי־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 צריכה להיות המוצא האחרון שלכם, ולא הבחירה הראשונה.
אתגר
קלכתבו פונקציה getUppercaseLength שמקבלת פרמטר text ומחזירה את האורך של הגרסה שלו באותיות גדולות.
הפונקציה מקבלת ערך מחרוזת שאינו null, אך סוג הפרמטר הוא nullable (String?). השתמשו באופרטור ההצהרה שאינו null !! כדי להמיר אותו לסוג שאינו nullable, ואז שרשרו את המתודה uppercase() וקבלו את length.
פרמטרים:
text(String?): מחרוזת nullable שמובטח כי היא מכילה ערך
ערך מוחזר: האורך של גרסת הטקסט באותיות גדולות (Int)
הערה: באתגר הזה, הקלט תמיד יהיה מחרוזת תקינה, ולעולם לא
null. הדבר מדמה מצב שבו ידוע לכם שהערך קיים, אך המהדר אינו יכול לוודא זאת.
נסו בעצמכם
fun getUppercaseLength(text: String?): Int {
// כתבו כאן קוד
}
השיעור הזה כולל חידון קצר. התחילו את השיעור כדי לענות עליו ולעקוב אחרי ההתקדמות.
כל השיעורים ביחידה יסודות
7קלט/פלט בסיסיים
פונקציית Printlnתבניות מחרוזתקלט באמצעות ReadLineהמרת טיפוסיםסיכום – שנים עד הפרישהסיכום – אמת או שקר10פונקציות
הכרזה על פונקציהפרמטרים וארגומנטיםערכי החזרהארגומנטים בעלי שםערכי ברירת מחדלפונקציות עם ביטוי יחידחזרה – פונקציית Sigmaחזרה – פונקציית אימות3אפשרות לערך null
מהי בטיחות מפני nullטיפוסים שיכולים להיות nullאופרטור קריאה בטוחהאופרטור אלביסיסודות אתגר הפונקציותאופרטור ההבטחה לאי־nullסיכום – גישה בטוחה9לולאות
לולאת forלולאת whileלולאת do-whilebreakcontinueטווחים בלולאותלולאה מקוננתחזרה – עצרתחזרה – קלט דינמיתרגלו בעצמכם: Kotlin אונליין