מהי בטיחות מפני null
חלק מהיחידה יסודות במסלול ה-Kotlin של Coddy. שיעור 12 מתוך 93.
בשפות תכנות רבות, אחת השגיאות הנפוצות ביותר היא ניסיון לגשת למשהו שאינו קיים: ערך null. זה קורה כשמשתנה מכיל "כלום" במקום נתונים ממשיים.
דמיינו שאתם מבקשים את שמו של משתמש, אבל הוא מעולם לא מסר אותו. אם הקוד שלכם מנסה להשתמש בשם הריק הזה בלי לבדוק קודם, התוכנית שלכם קורסת. באג מהסוג הזה נפוץ כל כך, עד שהוא כונה "הטעות של מיליארד הדולר".
הפתרון של Kotlin: בטיחות מפני ערכי null
Kotlin תוכננה כדי למנוע את הקריסות האלה. כברירת מחדל, משתנים ב-Kotlin אינם יכולים להכיל ערכי null:
fun main() {
var name: String = "Alice"
name = null // שגיאה! הקוד לא יתקמפל
}המהדר מזהה את הבעיה הזאת עוד לפני שהקוד שלך בכלל רץ. זה מה שהופך את Kotlin ל״בטוחה מפני null״: השפה עצמה מונעת ממך להשתמש בטעות ב-null במקומות שבהם הוא לא אמור להופיע.
בשיעורים הבאים תלמדו כיצד Kotlin מאפשרת לכם לעבוד עם ערכים שעשויים להיות null כשאתם באמת זקוקים להם, תוך שמירה על הקוד שלכם בטוח מפני קריסות.
אתגר
קלהכריזו על שני משתנים שאינם יכולים להיות null כדי להדגים את בטיחות הטיפול בערכי null ב-Kotlin:
- משתנה מסוג
Stringבשםusernameעם הערך"Kotlin" - משתנה מסוג
Intבשםscoreעם הערך100
לאחר מכן הדפיסו את שני הערכים בשורות נפרדות באמצעות println().
זכרו: ב-Kotlin, טיפוסים רגילים (שאינם יכולים להיות null) אינם יכולים להכיל ערכי
null. המהדר מוודא שהמשתנים שלכם תמיד מכילים נתונים תקינים.
נסו בעצמכם
fun main() {
// TODO: כתבו את הקוד שלכם למטה
// הכריזו על משתנה String שאינו יכול להיות null, בשם 'username', עם הערך "Kotlin"
// הכריזו על משתנה Int שאינו יכול להיות null, בשם 'score', עם הערך 100
// הדפיסו את שני הערכים בשורות נפרדות באמצעות println()
}השיעור הזה כולל חידון קצר. התחילו את השיעור כדי לענות עליו ולעקוב אחרי ההתקדמות.
כל השיעורים ביחידה יסודות
7קלט/פלט בסיסיים
פונקציית Printlnתבניות מחרוזתקלט באמצעות ReadLineהמרת טיפוסיםסיכום – שנים עד הפרישהסיכום – אמת או שקר10פונקציות
הכרזה על פונקציהפרמטרים וארגומנטיםערכי החזרהארגומנטים בעלי שםערכי ברירת מחדלפונקציות עם ביטוי יחידחזרה – פונקציית Sigmaחזרה – פונקציית אימות3אפשרות לערך null
מהי בטיחות מפני nullטיפוסים שיכולים להיות nullאופרטור קריאה בטוחהאופרטור אלביסיסודות אתגר הפונקציותאופרטור ההבטחה לאי־nullסיכום – גישה בטוחה9לולאות
לולאת forלולאת whileלולאת do-whilebreakcontinueטווחים בלולאותלולאה מקוננתחזרה – עצרתחזרה – קלט דינמיתרגלו בעצמכם: Kotlin אונליין