Menu
Coddy logo textTech

אופרטור איחוד עם 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 אונליין