Menu
CoddyTech

אופרטור איחוד עם Nil

חלק מהיחידה יסודות במסלול ה-Swift של Coddy. שיעור 14 מתוך 86.

לפעמים פשוט רוצים לספק ערך ברירת מחדל כאשר ערך אופציונלי הוא nil, בלי לכתוב כמה שורות קוד. אופרטור איחוד הערכים nil של Swift (??) עושה בדיוק את זה. הוא שולף את הערך מתוך ערך אופציונלי אם יש בו ערך, או מחזיר ערך ברירת מחדל אם הוא nil.

let nickname: String? = nil
let displayName = nickname ?? "Guest"
print(displayName) // Guest

מכיוון ש־nickname הוא nil, האופרטור מחזיר במקום זאת את "Guest". אילו היה ל־nickname ערך, היה נעשה שימוש בערך הזה.

let username: String? = "SwiftCoder"
let greeting = username ?? "Anonymous"
print(greeting) // SwiftCoder

האופרטור לאיחוד ערכי nil מושלם לביטויים בשורה אחת שבהם דרוש לך ערך חלופי. הוא נקי יותר מכתיבת משפט if let כשכל מה שרוצים הוא להחליף את nil בערך ברירת מחדל. כשהערך המוגדר כברירת מחדל אינו אופציונלי, גם התוצאה אינה אופציונלית, ולכן אפשר להשתמש בה ישירות בלי להסיר עטיפה נוספת.

challenge icon

אתגר

קל
כתבו פונקציה getDisplayName שמקבלת username אופציונלי ו-defaultName, ואז מחזירה את שם התצוגה המתאים באמצעות אופרטור האיחוד של nil.

אם שם המשתמש ריק (מיוצג באמצעות מחרוזת ריקה ""), התייחסו אליו כאל nil והחזירו את שם ברירת המחדל. אחרת, החזירו את שם המשתמש.

פרמטרים:

  • username (String): שם המשתמש (מחרוזת ריקה מייצגת nil)
  • defaultName (String): שם ברירת המחדל לשימוש

ערך מוחזר: שם המשתמש אם הוא אינו ריק, אחרת defaultName.

רמז: בתוך הפונקציה, אחסנו את שם המשתמש במשתנה מסוג String?, ואם שם המשתמש שווה ל-"", הגדירו את המשתנה הזה ל-nil באמצעות if פשוט. לאחר מכן השתמשו ב-?? כדי לספק את ברירת המחדל.

נסו בעצמכם

func getDisplayName(username: String, defaultName: String) -> String {
    // כתבו כאן קוד
}
quiz iconבחנו את עצמכם

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

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

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