PracticU

משתנים שיכולים לקבל ערך - Optionals

בלי כתוביותעם כתוביות
PracticU › קורס פיתוח אפליקציות - לאייפון iPhone iOS - ב-Swift-Xcode › משתנים שיכולים לקבל ערך - Optionals
מילון מושגים:
משתנה - שם שמפנה למקום בזיכרון שבו נשמר ערך שיכול להשתנות במהלך ריצת התוכנית, כמו מספר, טקסט או אובייקט.
מחרוזת - סוג נתונים שמייצג רצף של תווים, כלומר טקסט, ומשמש לאחסון מילים, משפטים או כל רצף סימנים.
תנאי - ביטוי לוגי בקוד שתוצאתו אמת או שקר, וקובע אילו פקודות יתבצעו בהתאם לערכו.
קומפיילר - תוכנה שממירה קוד מקור שנכתב בשפת תכנות לקוד שהמחשב יכול להריץ, ומדווחת על שגיאות תחביר.

משתנים שיכולים לקבל ערך - Optionals
זה שיעור על Optionals ב-Swift: משתנה רגיל לא יכול להכיל nil, ואילו משתנה אופציונלי יכול להכיל ערך או nil. השיעור מסביר גם את optional binding.
שלבי העבודה
1. טיפוס רגיל לעומת אופציונלי: var x: Int יכול להכיל מספר בלבד, ואילו טיפוס עם סימן שאלה, כמו Int? או String?, יכול להכיל גם nil.
2. מניעת שימוש ישיר: לפני שימוש בערך אופציונלי, השפה מזהירה, כדי למנוע שגיאה של nil.
3. optional binding: המשפט if let name = name בודק שהערך אינו nil. רק בתוך הבלוק הערך זמין לשימוש.
4. דוגמה: כשהשם מוגדר, מודפסת הברכה עם השם. אם הוא nil, לא נכנסים לתנאי.
שימו לב
ניסיון להשתמש בערך אופציונלי כרגיל מוביל לאזהרה מהמהדר, כי ייתכן שאין שם ערך.
כעת מבינים את ההבדל בין טיפוס רגיל לאופציונלי, ולמה בודקים nil לפני שימוש.
השיעור הבא בקורס: Explicitly unwrapped Optionals

פרקי ההרצאה: משתנים שיכולים לקבל ערך - Optionals

  1. 00:00

    מבוא ל-Optional - משתנים שיכולים להיות ריקים

  2. 00:41

    טיפוס Optional שמכיל מספר או nil

  3. 01:20

    הגדרת Optional String והשמת nil

  4. 02:01

    שימוש ב-Optional והתרעות הקומפיילר

  5. 02:37

    הגנה מפני שגיאת nil בזמן ריצה

  6. 03:14

    Optional Binding ובדיקת ערך בתנאי

תמלול ההרצאה: משתנים שיכולים לקבל ערך - Optionals

הטקסט המלא של הדקות הראשונות בהרצאה «משתנים שיכולים לקבל ערך - Optionals» בקורס הווידאו של PracticU – כתוביות בעברית עם זמן התחלה לכל פסקה. כך תוכלו לקרוא ולחפש את הנושאים לפני שמתחילים ללמוד.

  1. 00:02

    שלום וברוכים הבאים בשיעורים הקודמים דיברנו על משתנים וקבועים והיום אנחנו רוצים לדבר על אופשונלס בואו נתחיל באיזושהי דוגמה והסבר אנחנו רוצים להגדיר משתנה מסוג מספר ואנחנו יכולים לשים בו ערך עכשיו מותר לי בגלל שזה משתנה לשנות לו את הערך ולהדפיס אותו עד כאן שום דבר למעשה לא חדש מה שמעניין אבל זה שבמשתנה x אני

  2. 00:30

    אני יכול לשים אך ורק מספרים בגלל שהטייפ של x הוא טייפ רגיל של int לעומת זאת אני לא יכול לשים בx ניל ניל זה המקבילה של נעל מספר תכנות אחרות אני לא יכול לעשות את זה בוא נראה למה הטייפ של x הוא int בטוויט יש איזשהו טייפ נוסף שאתם לא מכירים אולי והטייפ הזה הוא אופצ'ונל אופצ'ונל אומר יכול להכיל מספר ויכול להכיל גם ניל אוקיי

  3. 01:00

    כמו שאתם רואים עכשיו מותר לי גם לשים כאן מספר או מספרים וגם בסופו של דבר לשים כאן ניל. סוויפט מבדילה למעשה בין משתנים שיכולים להיות ניל לבין משתנים שלא יכולים להיות ניל באף צורה.

  4. 01:17

    היא בעצם עוזרת לנו מאוד מאוד יפה להתמודד עם נילים שיש בסדר אם נעל פה אינטר אקספצ'ן שיכול לקבוע אותם בשפות אחרות. בואו ננסה לתת פה דוגמה לפני שנמשיך ונסביר מה ההערה פה לגבי הפרינט.

  5. 01:34

    אנחנו יכולים להגדיר string כאופציונל בסדר ובצורה הבאה יכול להגדיר name שווה nil את זה אסור לי לעשות נכון אלא אם כן אני אגדיר אותו להיות אופציונל סטרינג אוקיי אופציונל סטרינג הוא לא סטרינג רגיל שבסטרינג רגיל אסור לי לשים nil בוא נבדוק אלא אך ורק באופציונל סטרינג עכשיו הטייפ פה הוא לשיקול דעתכם איזה טייפ שאתם צריכים באותו רגע

  6. 02:05

    אבל האופציונל אומר שמותר לזה להיות גם ניל וגם סטרינג אוקיי יש פה שתי אפשרויות למעשה וצריך לקחת את שתי האפשרויות האלה בחשבון כשבאים לעבוד עם זה למשל בוא בוא רגע נעשה פה רגע השמה אז יש פה שם אוקיי אבל כשאני בא לנסות להדפיס את השם אני בא לנסות לומר אלו ואז לתת את השם נגיד שאני אשרשר את זה בצורה הבאה אז סוויפ מזהירה אותי אוקיי

  7. 02:32

    היא אומרת לי אתה לא יכול לדעת אם יש לך פה סטרינג או שיש לך פה ניל בגלל שאנחנו מדברים פה על משתנה שהוא אופציונל אוקיי? אז בעצם ברגע שאנחנו באים לעבוד עם אופציונלס אנחנו באמת צריכים להיזהר ולבדוק כי אנחנו הגדרנו מראש שיש פה סכנה שהדבר הזה עלול להיות ניל וכשאני בא להשתמש בו סריפט מגנה עליי מהשגיאה

  8. 02:54

    הנפוצה ביותר בעולם שהיא נעל פוינטר אקספצ'ן ואומרת לי אתה לא יכול לעשות את הביטוי הזה אתה צריך לבדוק קודם כל שיש יש name אוקיי עכשיו איך אנחנו נבדוק שיש name אם הפיצ'ר הזה של טיפול בנילים של בדיקת נילים בכל צורה swift הציגה משפט שנקרא optional binding ואומר את הדבר הבא אני אבדוק שהשם הוא לא need ואם השם

  9. 03:22

    לא need אז מותר לי בעצם במשפט תנאי להשתמש בו עכשיו משפט התנאי שונה משפטי תנאי שאנחנו מכירים בדרך כלל זה נקרא optional binding ויש פה סינטקס מיוחד שאומר אם name לא ניל אנחנו נשים name שווה לname

לקורס המלא: קורס פיתוח אפליקציות לאייפון

ההרצאה הקודמת: הכרזה על סוג משתנה - Type Annotations

ההרצאה הבאה: Explicitly unwrapped Optionals

הרצאות קשורות מקורסים אחרים

  • משתנים
  • משתנים - חלק 1
  • משתנים ב-JAVA
  • סוגי משתנים

קורסים נוספים במסלול

  • קורס יסודות התכנות - שפת JAVA - קורס ג'אווה למתחילים
  • קורס פיתוח אפליקציות - לאנדרואיד - Android - ב-JAVA
  • קורס פלאטר - Flutter - שפת DART של גוגל למובייל - פיתוח אפליקציות לאנדרואיד ואייפון
  • קורס PhoneGap - פיתוח אפליקציות לאנדרואיד ואייפון