אופרטור איחוד עם 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 בערך ברירת מחדל. התוצאה היא תמיד ערך שאינו אופציונלי, כך שאפשר להשתמש בו ישירות בלי לבצע פתיחה נוספת.
אתגר
קלכתבו פונקציה getDisplayName שמקבלת username אופציונלי ואת defaultName, ואז מחזירה את שם התצוגה המתאים באמצעות אופרטור איחוד הערכים nil.
אם שם המשתמש ריק (מיוצג על ידי מחרוזת ריקה ""), התייחסו אליו כאל nil והחזירו את שם ברירת המחדל. אחרת, החזירו את שם המשתמש.
פרמטרים:
username(String): שם המשתמש (מחרוזת ריקה מייצגת nil)defaultName(String): שם ברירת המחדל לשימוש
ערך מוחזר: שם המשתמש אם הוא אינו ריק, אחרת defaultName.
רמז: בתוך הפונקציה, אחסנו את שם המשתמש במשתנה מסוג String?, ואם שם המשתמש שווה ל־"", הגדירו את המשתנה הזה כ־nil באמצעות if פשוט. לאחר מכן השתמשו ב־?? כדי לספק את ערך ברירת המחדל.
נסו בעצמכם
func getDisplayName(username: String, defaultName: String) -> String {
// כתבו כאן קוד
}
השיעור הזה כולל חידון קצר. התחילו את השיעור כדי לענות עליו ולעקוב אחרי ההתקדמות.
כל השיעורים ביחידה יסודות
7קלט/פלט בסיסי
פונקציית ההדפסהאינטרפולציה של מחרוזותקלט באמצעות ReadLineהמרת טיפוסיםחזרה – עד 120חזרה – אמת או שקר3ערכים אופציונליים
מהם ערכים אופציונלייםשליפת ערך באמצעות If LetGuard Letאופרטור איחוד עם Nilסיכום – שליפה בטוחה של ערך9לולאות
לולאת For-Inלולאת Whileלולאת Repeat-WhileBreakContinueחזרה – עצרתטווחים בלולאותלולאה מקוננתחזרה – קלט דינמיתרגלו בעצמכם: Swift אונליין