
??, שמחזיר את ערך האופציונל, או ערך ברירת מחדל אם הוא nil.name ?? "ג'ון דו" מחזיר את הערך של name אם הוא קיים, ואם הוא nil מוחזר הערך שאחרי האופרטור."שלום " + (name ?? "ג'ון דו"). כש-name הוא "משה" מודפס "שלום משה", ואם הוא nil מודפס ערך ברירת המחדל.הטקסט המלא של הדקות הראשונות בהרצאה «Optionals: The nil coalescing operator» בקורס הווידאו של PracticU – כתוביות בעברית עם זמן התחלה לכל פסקה. כך תוכלו לקרוא ולחפש את הנושאים לפני שמתחילים ללמוד.
שלום וברוכים הבאים בשיעורים הקודמים דיברנו על אופצ'ונלס להגדיר משתנים שיכולים להיות ניל דיברנו על סינטקס מאוד מאוד בטוח ואיכותי שעוזר לנו לבנות קוד יציב שנקרא אופצ'ונל ביינדינג שעוזר לי לוודא שהגיל הוא לא ניל אני יודע בוודאות שהוא לא ניל יכול להשתמש בו בבטחה כמו ולידציה שכזאת אוקיי אני יודע שהוא תקין עכשיו גם דיברנו
על סינטקס המסוכן שנקרא explicitly unropping שאני ככה אומר אני בעצם רוצה להשתמש בזה שזרוקתי ניל פו אנטר אקספצ'ן ותהיה לי בעיה בתוכנית.
היום אנחנו רוצים להכיר סינטקס נוסף, סינטקסים נוספים של טיפול באופשונלס שקיימים בשפת סוויף. בואו נתחיל.
דבר ראשון, למשל אנחנו רוצים לבדוק אם הגיל הוא לא ניל, ואם הוא כן, אני רוצה להדפיס את הגיל, אבל אם הגיל הוא ניל, אז במקומו אני רוצה להדפיס 0.
הסינטקס הזה בדיוק יעזור לי להשיג את המטרה, הוא נקרא ניל קואלסינג אופרטור שמה שהסינטקס הזה אומר אני מדפיס או את הגיל ואם לא אני אדפיס ערך דיפולטי של 0 אם היה לי עניין של שמות בסדר let name of type optional string ואני אשים פה ערך בסדר אני אנסה לשים פה איזשהו ערך כשאני אדפיס את השם אז יש לנו פה שתי אפשרויות למעשה אני לא יכול לבוא ולהגיד הלו
למשה נכון כי כי בעצם name שלנו עלול להיות ניל, יש לנו איזשהו חשש בגלל שזה אופציה שונה, נכון? תכף הקומפיילר יגלה את זה. מה שאנחנו יכולים לעשות במקום זה להשתמש בניל קואלסינג אופרטור בצורה הזאת, ואני אומר שלום למשה אלא אם כן אין לו ערך, לא עדיין לא בוצעה השמה וכאן אני יכול לשים