PracticU

פעולות ב-structs - כולל mutating methods

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

פעולות ב-structs - כולל mutating methods
כדי לשנות תכונה של סטרקט בתוך פעולה, מסמנים את הפעולה במילה mutating. בשיעור בונים סטרקט לדירוגים, מחשבים ממוצע כתכונה מחושבת ומסתירים את הדירוגים בעזרת private.
איך זה עובד
1. סטרקט דירוגים: מגדירים מערך של דירוגים מסוג Int, ותכונה מחושבת בשם total שמחשבת את הממוצע.
2. המרה ל-Double: כדי לחשב שברים, ממירים כל דירוג ל-Double לפני החיבור, וגם את מספר האיברים.
3. הוספה: יוצרים מופע של הסטרקט ומוסיפים לו דירוגים בעזרת append. הדפסת התכונה המחושבת מחזירה את הממוצע.
4. הסתרה: המילה private מונעת גישה לרשימת הדירוגים מבחוץ, כך שלא יכניסו דירוגים לא תקינים.
5. פעולה להוספה: הפעולה addRating מקבלת דירוג, בודקת שהוא בטווח שבין 1 ל-5, ורק אז מוסיפה אותו. בתוך הפעולה ניגשים לתכונות של המופע בעזרת self.
6. mutating: פעולה שמשנה תכונה שמורה של סטרקט חייבת להיות מסומנת mutating, אחרת הקומפיילר לא יאפשר את השינוי.
שימו לב
דירוג שאינו בטווח לא יתקבל. לכן הפעולה בודקת את הערך לפני ששינוי נעשה ברשימה.
בסיום תדעו להסתיר תכונה, לבדוק קלט לפני שינוי, ולסמן פעולה שמשנה סטרקט כ-mutating.
השיעור הבא בקורס: פעולת בנאי - init עבור structs

פרקי ההרצאה: פעולות ב-structs - כולל mutating methods

  1. 00:00

    מבוא לסטראקט Rating ומבנה הקובץ

  2. 00:38

    תכונה שמורה: מערך של דירוגים

  3. 01:16

    תכונה מחושבת: הדירוג הכולל כממוצע

  4. 02:45

    יצירת מופע והוספת דירוגים בבקר

  5. 03:43

    הצורך בהגנה על ערכי הדירוג

  6. 04:16

    מילת private והסתרת התכונה

  7. 05:02

    פעולה להוספת דירוג עם בדיקת טווח

  8. 06:00

    מילת mutating לפעולה שמשנה את הסטראקט

תמלול ההרצאה: פעולות ב-structs - כולל mutating methods

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

  1. 00:02

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

  2. 00:33

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

  3. 00:48

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

  4. 01:09

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

  5. 01:24

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

  6. 01:48

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

  7. 02:20

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

  8. 02:36

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

  9. 03:03

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

  10. 03:36

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

  11. 03:53

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

  12. 04:05

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

  13. 04:20

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

  14. 04:47

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

  15. 05:05

    אז אנחנו נגדיר לעצמנו פעולה והפעולה הזאת תהיה add רייטינג אוסף דירוג כמובן שהפעולה תקבל איזשהו מספר עם הדירוג אנחנו נכריז שהפעולה add רייטינג רוצה לקבל מספרים בין 1 ל-5 וכולי וכולי אבל אנחנו גם נבדוק את זה אנחנו לא רק נהיה תלויים בחסדי המשתמשים שלנו. אז הפעולה AddRating מקבלת מספר, נקרא לו רייטינג,

  16. 05:38

    ויכולה להוסיף אותו ל-self.ratings זה פעם ראשונה שאנחנו משתמשים במילה self, המילה self אומרת הרייטינג שלמעלה זה ששם, בסדר? self. זה בעצם התכונות השמורות של אותו אובייקט.

  17. 05:56

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

  18. 06:17

    מיוטייט זה פירושו לשנות, בסדר? ואני בעצם הכרזתי על הפעולה הזאת מיוטייטינג, כלומר זאת פעולה שעלולה לשנות את הערכים של התכונות השמורות, בסדר? אז בסוויפט by default פעולות לא יכולות לשנות ערכים סתם, נכון?

  19. 06:34

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

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

ההרצאה הקודמת: תכונות שמורות ותכונות מחושבות ב-structs

ההרצאה הבאה: פעולת בנאי - init עבור structs

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

  • methods - חלק 1
  • הוספת Methods ל-class
  • מה כולל Robot Framework
  • פעולות מתמטיות - אופרטורים - חלק 1

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

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