
for (int i = 0; i < ...; i++), והפעולה מתבצעת כל עוד התנאי מתקיים.isEven(x), שמחזירה x % 2 == 0."is 13 even? ${isEven(13)}".=> מחזיר את הביטוי בלי המילה return.any בודקת אם קיים איבר אחד לפחות שמקיים תנאי. every בודקת אם כל האיברים מקיימים אותו.הטקסט המלא של הדקות הראשונות בהרצאה «לולאות ופונקציות בשפת Dart» בקורס הווידאו של PracticU – כתוביות בעברית עם זמן התחלה לכל פסקה. כך תוכלו לקרוא ולחפש את הנושאים לפני שמתחילים ללמוד.
בשיעור הזה נלמד על בקרת זרימה. עכשיו, אני יוצא מנקודת הנחה שכבר יש לכם רקע בתכנות, אז סליחה אם חלק מהדברים שאני אומר כבר מוכרים לכם, אבל כשלומדים בשפה חדשה כדאי ללמוד את הסינטקס.
אז אנחנו נעבור בקצרה על הסינטקס של לולאות, פונקציות, פונקציות חטא ופונקציות אנונימיות. אוקיי, אז נתחיל עם לולאות. הסינטקס של לולאות הוא זהה כמעט כמו בכל שפה, פשוט רושמים for int i שווה 0 כל עוד i קטן מ-s לדוגמה i++ או++i ונדפיס את i. מעולה, אין כאן יותר מדי מה לחדש.
נעבור לפונקציות. הגדרה של פונקציה בdart היא מאוד מאוד פשוטה. קודם כל לא צריך לרשום את המילה פונקציה, אפשר פשוט להתחיל עם השם.
לא צריך לרשום מה הפונקציה מחזירה ולא חייב לציין את סוגי הפרמטרים. לדוגמה אם אנחנו רוצים לרשום פונקציה שמקבלת מספר ומחזירה האם הוא זוגי, נרשום is even, אוקיי? לא רשמנו function is even, לא רשמנו בוליאן is even, פשוט is even.
הפונקציה הזאת מקבלת פרמטר שנקרא לו x, לא חשוב מאיזה סוג, והפונקציה מחזירה return x מודול הוא 2 שווה שווה 0. פשוט מאוד.
עכשיו נוכל להדפיס לדוגמה is even 13 false. נבטל קודם כל את הפרסה של הלולה. פשוט סימנתי את כל האזור הזה ולחצתי על קונטרול וסלאש.
נגיד שוב מעולה. עכשיו בואו נחזור קצת אחורה ונשתמש בסטרינג יטרפוליישן שלמדנו בשיעור הקודם, אז נרשום print ו-is 13 even סימן שאלה והתשובה תהיה סטרינג יטרפוליישן עם הביטוי is even של 13 is 13 even false נשנה את זה ל-14 מעולה dart כמו בכל השפות המתקדמות תומכת בפונקציית חץ.
מה זה אומר אם ניקח לדוגמת הפונקציה is even שלנו אפשר לומר שההגדרה היא שלוש שורות, די ארוכה. אפשר לצמצם אותה לשורה אחת.
איך? נשים אותה בהערה control ו-slash ונגדיר אותה מחדש. נרשום var is even שווה שימו לב שהכנסנו את הפונקציה כביכול לתוך משתנה וזו הגדרה של הפונקציה זו פונקציה שמקבלת פרמטר x והנה החצי המדובר ועכשיו נרשום את גוף הפונקציה
אז מה גוף הפונקציה? return x מודול 2 שווה שווה 0 נכון? שכשאנחנו כותבים פונקציית חץ צריך להשמיט את המילה return. נוודא שהפונקציה עובדת.
print is even של 77. מעולה. מהם פונקציות אנונימיות? פונקציות אנונימיות הן פונקציות שהן אנונימיות, בלי שם.
בואו נראה דוגמה לזה. קודם כל נמחק את כל מה שבהערה. עכשיו נגדיר רשימה של מספרים var numbers = 1 ל-9. עכשיו בואו נגיד שאנחנו רוצים לקבל לדוגמה רק את המספרים שמתחלקים ב-3 בלי שרת.
אז נגדיר var result שווה לאותם numbers אבל איפה ש... ועכשיו אנחנו נגדיר פונקציה אנונימית שהיא תציין תנאי. לדוגמה איפה שהנה פונקציה אנונימית שמקבלת כפרמטר x והנה הגוף של הפונקציה האנונימית. שימו לב שהגדרנו בעצם פונקציה בלי שם בכלל.
מה התנאי שלי לקבל את המספרים? return תן לי רק את המספרים שx מודול הוא 3 שווה שווה ל-0. ועכשיו נדפיס את ריזולט כמו שציפינו.
עכשיו שימו לב שההגדרה של הפונקציה האנונימית היא די ארוכה. שוב פעם, שלוש שורות אפשר להמיר אותה לשורה אחת להפוך אותה לפונקציית חץ.
איך עושים את זה? קודם כל נמחק את גוף הפונקציה את הסוגריים המסולסלות בהתחלה ובסוף ונמחק את המילה return ונוסיף את החץ המדובר.
רק ניישר קצת את הכל נמחק את הרווחים המיותרים ונמחק גם את הנקודה פסיק בסוף וקיבלנו פונקציית חץ.
שימו לב כמה קצר זה, נגיד את זה שוב אותה תוצאה כמובן. עכשיו דבר נוסף אני רוצה לחדד, יש לנו כבר פונקציית חץ בשם isEven שמוגדרת כאן למעלה.
אולי אפשר להשתמש בה ולקבל את המספרים הזוגיים. זה יהיה var result שווה numbers where ובמקום ההגדרה של פונקציית החץ בפנים אפשר פשוט לזרוק את isEven לבפנים.
זאת אומרת numbers תן לי בבקשה את כל המספרים שהם זוגים בואו נראה. נעולה תראו כמה קצר וברור זה. עכשיו אנחנו מתחילים להבין מה העוצמה של dart וכאן אני רוצה לתת כמה דוגמאות שמאוד מאוד חשוב להבין כי השימוש שלהם בפלאטר הוא יומיומי.
הדוגמה הראשונה תהיה הפונקציה map אל תתבלבלו עם המשתנה map שהכרנו מקודם אני מדבר על פונקציה. אז הפונקציה map רצה על רשימות ומבצעת בעצם המראה של כל האיברים באותה הרשימה.
לדוגמה אם נרצה לקחת את המערך שלנו של numbers את הרשימה הזאת ולהמיר אותה לרשימת החזקות זאת אומרת שכל מספר יהיה בעצם אותו מספר בחזקה. אז נלשום var powers מלשון החזקות שווה לנאמברס וmap.
עכשיו הפונקציה map תיקח בעצם פונקציית חץ אז נגדיר פונקציית חץ שיש לה פרמטר בשם x, הx בעצם בכל איתרציה יהיה אותו מספר מנאמברס והפונקציה תחזיר את x כפול x. שוב פעם var powers שווה אותו מערך מקור נאמברס נקרא לה פונקציה map ונמיר עבור כל ערך נבצע המרה.
עבור כל ערך x נבצע את ההמרה x כפול x. בוא נראה מה יצא לנו, print powers,