
func, נותנים לה שם, ומפעילים אותה בקריאה לשם. הפונקציה say בדוגמה מדפיסה הודעה.x: Int. בקריאה לפונקציה כותבים את שמות הפרמטרים.add מקבלת x ו-y מסוג Int ומחברת ביניהם.String, והפונקציה מחזירה את הערך במילה return. בדוגמה פונקציה מברכת אדם לפי שמו.add בדוגמה לא מחזירה ערך אלא מדפיסה, ולכן אין לה טיפוס החזרה.הטקסט המלא של הדקות הראשונות בהרצאה «פונקציות - Functions» בקורס הווידאו של PracticU – כתוביות בעברית עם זמן התחלה לכל פסקה. כך תוכלו לקרוא ולחפש את הנושאים לפני שמתחילים ללמוד.
שלום וברוכים הבאים אנחנו רוצים לדבר היום על פונקציות בשפת סוויף מהי בכלל פונקציה פונקציה היא קטע קוד שיש לו שם ואני יכול לעשות בו שימוש חוזר למשל בוא אני אכתוב את הדוגמה הכי הכי פשוטה אני רוצה לכתוב איזושהי פונקציה שאומרת שלום say הלו אוקיי והפונקציה פשוט אומרת שלום בצורה הבאה print הלו עכשיו
אני ארצה לקרוא לפונקציה הזאת אז אני אעשה print או פשוט אני פשוט אקרא ל-say Hello בצורה הזאת, אני קורא לפונקציה בשם שלה. עד כאן אני לא אמור לחדש לכם הרבה, אז פונקציה הכי הכי פשוטה, אני קורא לפונקציה בשם שלה והפונקציה מדפיסה משהו, בסדר?
יפה. עכשיו בוא נדבר קצת על מה מיוחד בפונקציות בשפת Swift, אז פונקציות בשפת Swift אנחנו מציינים את זה שזה פונקציה על ידי המילה fung, המילה שמורה fung, כאן יש לי את שם הפונקציה, וכדי לתת שמות לפרמטרים אז אני פשוט נותן שמות לפרמטרים על ידי type
annotations כמו שאנחנו מכירים. למשל אם אנחנו רוצים לכתוב את הפונקציה add שאמורה לחבר בין שני מספרים אז אני פשוט מגדיר שיש לי משתנה בשם x והסוג שלו הוא אינטג'ר ויש לי משתנה בשם y שהסוג שלו הוא גם כן אינטג'ר והפעולה הזאת מחברת בין הערך של x ל-y ובוא נאמר מדפיסה את זה. יפה,
אבל איך אנחנו משתמשים בפונקציה הזאת? לפונקציה הקודמת אנחנו השתמשנו בה פשוט בשם שלה כמו שאנחנו עושים בכל שפות התכנון ואת זה אנחנו ככה, אתם בטח הכרתם את זה קודם.
אבל מה קורה עכשיו בפונקציה add כשאני בא וניגש אליה? בסדר? איך אני משתמש בפונקציה הזאת? אז אני קורא לפונקציה add ואני צריך בעצם לתת את השמות של הפרמטרים, אתם רואים?
כתוב add x.2 y.2. למזלנו הייתה לי פה השלמה אוטומטית אבל אבל אנחנו צריכים לדעת היטב שפונקציות בסוויפ מצפות לקבל את השמות של הפרמטרים יפה בוא נראה מה קורה הפונקציה פה לא מחזירה ערך כמו שאתם רואים היא פשוט מדפיסה בוא נראה מה היה קורה אם הייתי רוצה לקבל ערך
מפונקציה נמחק רגע את הפונקציות שכבר קיימות לנו שהדגמנו איתן ובוא נגדיר איזושהי פונקציה שלישית שאומרת say or greet מישהו בסדר עכשיו הפונקציה צריכה לקבל פרמטר בוא נאמר ניי, הטייפ שלו יהיה סטרינג ואנחנו רוצים שהפונקציה
הזאת תחזיר לנו סטרינג, היא תחזיר לנו ברכה כלשהי עבור הפרסון הזה. כדי לברך את הפרסון אנחנו נרצה להחזיר סטרינג ולהשתמש בשם שלו, אז בוא נגיד הלואו תיק ואנחנו נכניס את השם של אותו פרסון נעימה וכמובן אני מחזיר פה סטרינג, רואים?
יפה, אז בעצם הכרזתי שהפונקציה כאן מחזירה סטרינג. הכרזנו על ה-return type בעזרת החץ כאן, אוקיי? והשתמשנו ב-QWord return כדי להחזיר את הסטרינג, כמובן שהדבר הזה זה פשוט סטרינג עם סטרינג אינטרפוליישן.
אז דיברנו בינתיים על שתי דברים, ראינו איך אנחנו מגדירים פונקציה שיודעת לקבל פרמטרים ויודעת להחזיר ערך, אוקיי? והערך יכול להיות סטרינג, הוא יכול להיות אינטג'ר, הוא יכול להיות עוד כמה דברים.
שיעורי הבית שלכם הם לכתוב את הפונקציות הבאות אני אתן לכם פה מערך let arr המערך הזה יכיל את האיברים הבאים ואתם צריכים לחשב את המינימום במערך את המקסימום של המערך את האיבר הקטן ביותר את האיבר הגדול ביותר במערך וכמובן אתם צריכים לחשב את הממוצע את האיבר הממוצע במערך עכשיו איך אתם מחשבים אותם מהיום ואילך אנחנו נשתמש אך
ורק בפונקציות כדי לחשב דברים בסדר? אנחנו נרצה שתהיה לנו פונקציה לכל דבר ועניין. אם אני רוצה לחשב ממוצע, אני אקרא לה פונקציה של average.
מה הפונקציה תקבל לדעתכם? הפונקציה צריכה לקבל את המערך, אוקיי? והטייפ שלו זה כמובן intrade. הפונקציה יכולה כרגע להדפיס, או רצוי גם שהפונקציה תחזיר לנו את האיבר המינימלי, את האיבר המקסימלי, שזה יכול להיות integer, נכון האיבר המינימלי והמקסימלי או את הממוצע שהממוצע יכול להיות או דאבל או מספר אם אתם
ככה רוצים שזה יהיה מספר בסופו של דבר. אז השיעורי בית שלכם לייצר שלוש פונקציות אחת שמחשבת את האיבר המינימלי הקטן ביותר במערך השנייה שמחשבת את האיבר המקסימלי במערך והפונקציה השלישית שמחשבת את הממוצע.