
t.0 ו-t.1.הטקסט המלא של הדקות הראשונות בהרצאה «צבר משתנים - Tuples» בקורס הווידאו של PracticU – כתוביות בעברית עם זמן התחלה לכל פסקה. כך תוכלו לקרוא ולחפש את הנושאים לפני שמתחילים ללמוד.
שלום וברוכים הבאים אחרי שסקרנו את הדאטה טייפס הבסיסיים בסוויפט כגון מספרים ובוליאנס וסטרינגים וכן הלאה וגם למדנו לעבוד עם בקרת זרימה של התוכנית ואיך לאחסן את כל המשתנים הללו במבנה נתונים הגיע הזמן שנתקדם הלאה לסוגים לטייפים נוספים
בסוויפט אוקיי הטייפים הנוספים שאנחנו רוצים לזכור אותם נמצאים כאן ברשימה שלפניכם ולפניכן ואנחנו פשוט נתחיל בראשון אבל זאתי התוכנית שלנו לכמה שיעורים הקרובים בואו נתחיל לדבר על הנושא הראשון שנקרא טיופלס טיופלס פשוט מהווה צירוף של יותר ממשתנה אחד למה אני מתכוון בוא ניתן לכם דוגמא למשל אני רוצה לצרף גם סטרינג וגם איזשהו מספר
אוקיי ראינו בשיעורים הקודמים שאפשר לעשות את זה על ידי מילון וכן הלאה אבל כאן אני בעצם מדבר פשוט על זוג בואו נקרא לזה זוג פר בשבילנו כרגע הטיופל הזה הוא זוג של שתי דברים למשל אולי אתם יכולים להגדיר נקודה על ידי קואורדינטות של x וy אז 3 ו3.2 כמו נקודה במרחב x וy בסדר אז להבדיל מדיקשונריס או דברים כאלה שמיועדים להיות מבנה נתונים
גדולים טיופל הוא פשוט זוג או שלישייה או רביעייה של דברים איך משתמשים בהם בואו נבדוק למשל יש לי את הטאפל הזה פה למעלה, את הטיופל הזה פה למעלה, בוא נראה אוקיי, עכשיו אני יודע שזה טיופל למעשה של סטרינג ואינט, כי זה מה ששמנו פה, נכון?
ובמקום הראשון אני באמת רואה שיש לי סטרינג ובמקום השני אני רואה שיש לי אינט. אוקיי, כדי לגשת לאיברים בטיופל אני פשוט יכול לגשת אליהם כמו שאתם רואים בצורה הזאת טיופל נקודה אפס וטיופל נקודה אחד, אני לא יודע אם זה הכי נעים לכם בעין כשאתם רואים את זה בתכנון, הנה זה הסינטקס שהגדירו עבורנו כדי שנהיה לגמרי ברורים טיופלס לא מוגדרים לזוג
אני יכול לא מוגבלים לזוג אני יכול להגדיר טיופלס שמכיל איזה מספר איברים שאני רוצה אוקיי כאן אפשר לשים תוצאות של משחק כדורגל או מה שתרצו כמובן אנחנו לא צריכים את זה במקום מערך אם זה חסר משמעות לחלוטין וזה נראה כמו מערך אז בבקשה להשתמש במערך אבל הגודל פה לא מוגבל אוקיי עכשיו למה טיופלס נחמדים בעצם טיופלס יכולים לשמש אותי כ-return
type של פעולה ואז אני יכול לומר שפונקציות בסוויפט יכולות להחזיר יותר ממשתנה אחד בוא נראה דוגמא לפונקציה כזאת אז יש לי פונקציה שאולי מחשבת סטטיסטיקס בוא נקרא לה סטאקס שמקבלת בוא נאמר מערך של מספרים שלמים אוקיי כדי לציין מערך של מספרים שלמים אני משתמש בסוגריים מרובעיות ובפנים אני כותב את המילה int עכשיו בוא נאמר עד עכשיו
ואולי אנחנו יכולים לחשב סטטיסטיקה. איך מחשבים את הסטטיסטיקה? אני אשאיר לכם את המחשבה על זה. תעצרו שנייה את הסרטון, מה שאני רוצה מכם זה לחשב את הממוצע ולחשב את האיבר המינימלי ולחשב גם את האיבר המקסימלי.
בסדר? בואו תעצרו שנייה את הסרטון, תנסו לחשוב איך אתם מחשבים את שלושת הדברים האלה וניפגש פה בעוד רגע. טוב, שמח שחשדתם על זה וחזרתם. בואו נדגים איך פותרים את האיבר הממוצע.
אני אחשב את הסכום ואני אתחיל אותו באפס ואנחנו יכולים לעשות תלונה עבור i בתוך המערך i זה אייטם בתוך המערך בסדר זה כל איבר במערך זה כמו איבר במקום ה-i אז אולי נקרא לזה אייטם ומה שאנחנו יכולים לומר פה זה הסכום פלוס שווה לאייטם שלנו בסדר עכשיו
יש לי את סכום האיברים במערך אבל ביקשו את הממוצע הממוצע יהיה שווה לסכום האיברים נחלק לקאונט של האיברים במערך נכון אז זה יהיה r נקודה עכשיו מה לגבי המינימום והמקסימום כאן אולי יש לי הפתעה בשבילכם כדי לחשב את המינימום כל מה שאנחנו צריכים לעשות זה להשתמש בפונקציה מוכנה של מערכים בסוויפ שנקראת מין עכשיו שימו לב שהפונקציה הזאת
מחזירה לי אופציונל בסדר זאת אומרת אם כל אם המערך מורק למעשה אז היא לא תחזיר לי שום דבר אני יודע שהמערך שלי לא יהיה ריק ואם כן אני אגיד לפונקציה להחזיר לי בוא נגיד שתחזיר 0 בסדר עכשיו לגבי max אותו סיפור arr.max בוא נגיד אם אין לי שם ערך יודעים מה אפשר גם להחזיר null נכון זאת אומרת max הוא לא בהכרח נמצא אם העבירו לי מה אחרי אז
יאללה אני לא מחזיר להם שום דבר ובגלל זה הפונקציה הזאת מחזירה אופציונל מלכתחילה אוקיי אז בוא נאמר שמין ומקס אנחנו נשאיר אותם כמו שסוויף תגדירה אותם להיות אופציונל אינטג'רס כי זה מה שהם אוקיי ולא בהכרח שלמערך הזה יש גודל, אני לא בידעתי את זה, יכול להיות שקיבלתי מערך בגודל 0 ולכן אין לו מינימום
ואין לו מקסימום וכן הלאה. אוקיי, אז חישבנו את כל הסטטיסטיקה, איך אנחנו מחזירים עכשיו טיופל? אתם יכולים לנחש לבד, נכון? אני רוצה להתחייב שאני מחזיר, בוא נאמר, שלושה מספרים.
לגבי הממוצע, אתם לגמרי מוזמנים להפוך את הממוצע לדאבל, אבל הנה העיקרון, אני אומר אני מחזיר פה טיופל של שלוש דברים, בסדר?
בואו נראה איך אנחנו מחזירים את זה על ידי return average אחר כך נכניס את המינימום ואחר כך נכניס את המקסימום רואים? בואו נראה מצוין רגע, כאן רצינו להכניס את ה-average עכשיו זה עובד מצוין, בואו נראה יש
יפה מאוד עכשיו, בואו נראה איך אנחנו עובדים עם הפונקציה הזאת של סטאטס טאפלס האלה, אף פעם לא התעסקנו איתם באף שפה לפני כן בואו נראה איך אפשר לעבוד עם הפונקציה הזאת אני אקרא לסטאטס ואני אתן לה מערך של שלושה מספרים 3, 4 ו-2 והדבר הזה מחזיר לי טאפל אז בוא נגיד
let result שווה ואנחנו רואים את result נקודה 0, result נקודה 1 וכו'. עכשיו יש שיטענו שהתוצאה פה לא כל כך קריאה אנחנו מקבלים result במקום ה-0, מה זה 0, מי יודע מה זה 0 וכן הלאה אבל יש פה זה מאוד מאוד פונקציונלי אתם רואים פה פונקציה
שיכולה להחזיר שלוש דברים, לאו דווקא מספר אחד, אנחנו לא מחזירים, כן, כאן אני צריך לבדוק אם יש לי ערך או אין לי ערך, נכון? אופצ'ונלס.
בסדר? אז כאן אנחנו, אם לא, אז נדפיס no value יותר יפה מאשר לזרוק סתם מספר, וגם פה no value, נכון? אם אין לנו ערך, אז יש לנו מה להדפיס. אתם רואים איזה יופי, סוויפט מגנה עליי מפני כל מיני מקרים,