טיפוסים שיכולים להיות 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.
אתגר
קלהכרז על המשתנים הבאים שיכולים לקבל ערך null:
Stringשיכול לקבל ערך null ושמוnickname, עם הערך"Shadow"Intשיכול לקבל ערך null ושמוage, עם הערךnullDoubleשיכול לקבל ערך 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
// לאחר מכן הדפיסו את שלושת הערכים, כל אחד בשורה נפרדת
}השיעור הזה כולל חידון קצר. התחילו את השיעור כדי לענות עליו ולעקוב אחרי ההתקדמות.
כל השיעורים ביחידה יסודות
7קלט/פלט בסיסיים
פונקציית Printlnתבניות מחרוזתקלט באמצעות ReadLineהמרת טיפוסיםסיכום – שנים עד הפרישהסיכום – אמת או שקר10פונקציות
הכרזה על פונקציהפרמטרים וארגומנטיםערכי החזרהארגומנטים בעלי שםערכי ברירת מחדלפונקציות עם ביטוי יחידחזרה – פונקציית Sigmaחזרה – פונקציית אימות3אפשרות לערך null
מהי בטיחות מפני nullטיפוסים שיכולים להיות nullאופרטור קריאה בטוחהאופרטור אלביסיסודות אתגר הפונקציותאופרטור ההבטחה לאי־nullסיכום – גישה בטוחה9לולאות
לולאת forלולאת whileלולאת do-whilebreakcontinueטווחים בלולאותלולאה מקוננתחזרה – עצרתחזרה – קלט דינמיתרגלו בעצמכם: Kotlin אונליין