מתודת map
חלק מהיחידה לוגיקה וזרימת תוכנית במסלול ה-GDScript של Coddy. שיעור 60 מתוך 78.
פונקציה מסדר גבוה יותר היא פונקציה שמקבלת פונקציה אחרת כארגומנט. למערכים יש כמה פונקציות כאלה, ו־map() היא הראשונה.
map() קוראת לפונקציה על כל איבר במערך ומחזירה מערך חדש עם התוצאות, באותו סדר:
func square(n):
return n * nvar numbers = [1, 2, 3, 4, 5]
var squares = numbers.map(square)
print(squares)[1, 4, 9, 16, 25]העבירו את הפונקציה לפי שמה, ללא סוגריים: map(square) מעביר את הפונקציה, ואילו map(square()) ינסה לקרוא לה מיד. לאחר מכן map() קוראת לה פעם אחת עבור כל איבר: 1 הופך ל־1, 2 הופך ל־4, 3 הופך ל־9, וכן הלאה.
בחישוב קצר, למבדה חוסכת לך את הצורך בפונקציה נפרדת:
var squares = numbers.map(func(n): return n * n)למערך החדש יש אותו גודל כמו למערך המקורי, ו-numbers עצמו לא משתנה. התוצאות יכולות להיות מסוג אחר מזה של האיברים:
var words = ["apple", "kiwi", "banana"]
print(words.map(func(w): return w.length()))[5, 4, 6]map() מחזירה Array רגיל, גם כשקוראים לה על מערך מטיפוס מסוים כמו Array[int]. אחסון התוצאה במשתנה מסוג Array[int] עוצר את התוכנית עם שגיאה, לכן יש לאחסן אותה במשתנה ללא טיפוס מוגדר או ב-Array.
split() מחזירה PackedStringArray, שאין לה map(). קודם ממירים אותה ל־Array: Array("1,2,3".split(",")).map(func(s): return int(s)) מחזירה [1, 2, 3].
אתגר
קלכתבו פונקציה בשם convert_to_uppercase שמקבלת מערך של מחרוזות, strings, ומחזירה מערך חדש שבו כל מחרוזת כתובה באותיות גדולות.
השתמשו ב-map() עם למבדה, וללא לולאה. לדוגמה, convert_to_uppercase(["hello", "world"]) מחזירה ["HELLO", "WORLD"].
הבדיקות קוראות בעצמן ל-convert_to_uppercase(). אל תקראו לה, ואל תדפיסו דבר.
נסו בעצמכם
func convert_to_uppercase(strings: Array[String]):
# כתבו כאן קוד
pass
השיעור הזה כולל חידון קצר. התחילו את השיעור כדי לענות עליו ולעקוב אחרי ההתקדמות.
כל השיעורים ביחידה לוגיקה וזרימת תוכנית
2קבלת החלטות מתקדמת
התאמה עם משתניםתנאי סף להתאמהתבניות מערכיםתבניות מילוניםבדיקות חברותסיכום – מנתח פקודות5אפליקציית ספר אנשי קשר
הצגת התפריטהוספת איש קשר8מנהל רשומות תלמידים
סקירת הפרויקטהוספת תלמיד11פונקציות מסדר גבוה
מתודת mapמתודת filterמתודת reduceany ו-allחזרה: מאמת כתובות אימיילחזרה: מעבד מספריםתרגלו בעצמכם: קומפיילר GDScript אונליין