פונקציות Lambda חלק 1
חלק מהיחידה לוגיקה וזרימת תוכנית במסלול ה-GDScript של Coddy. שיעור 54 מתוך 78.
lambda היא פונקציה ללא שם, שנכתבת כערך. אפשר לאחסן אותה במשתנה כמו מספר או מחרוזת:
var add = func(a, b): return a + bהיא מתחילה ב־func, בפרמטרים ובנקודתיים, כמו כל פונקציה, אבל אין לה שם. גוף שמכיל פקודה אחת יכול להישאר באותה שורה.
כדי להריץ למבדה ששמורה במשתנה, יש לקרוא למתודת call() שלה עם הארגומנטים:
print(add.call(5, 3))8add(5, 3) לא פועל: GDScript מחפש פונקציה בשם add בסקריפט ומדווח על Function "add()" not found לפני שהתוכנית פועלת.
ללמבדה ארוכה יותר יש בלוק מוזח. כמו כל פונקציה, היא זקוקה ל־return כדי להחזיר ערך:
var greet = func(player_name):
var message = "Hello, " + player_name
return message + "!"
print(greet.call("Ana"))Hello, Ana!פונקציית למבדה ללא return מחזירה null, ולכן func(n): n * 2 מחשבת את הערך ומשליכה אותו.
לפרמטרים ולתוצאה יכולים להיות טיפוסים: func(n: int) -> int: return n * 2. הערך של למבדה הוא Callable, הטיפוס ב-GDScript עבור "משהו שאפשר לקרוא לו".
אתגר
קלהתוכנית קוראת שלושה מספרים שלמים, a, b ו-c.
- צרו lambda עם שלושה פרמטרים,
x,yו-z, שמחזירה את המכפלה שלהם, ושמרו אותה במשתנה בשםmultiply. - קראו לה עם
a,bו-cוהדפיסו את התוצאה.
עבור הקלטים 2, 3 ו-4, הפלט הוא:
24נסו בעצמכם
extends Node
func _ready():
var a := int(OS.read_string_from_stdin())
var b := int(OS.read_string_from_stdin())
var c := int(OS.read_string_from_stdin())
# צרו כאן את פונקציית הלמבדה multiply
# קראו ל-multiply עם a, b ו-c, והדפיסו את התוצאה
השיעור הזה כולל חידון קצר. התחילו את השיעור כדי לענות עליו ולעקוב אחרי ההתקדמות.
כל השיעורים ביחידה לוגיקה וזרימת תוכנית
10פונקציות מתקדמות
החזרת ערכים מרוביםפונקציות Lambda חלק 1פונקציות Lambda חלק 2סיכום – מיון עם Lambdaפונקציות רקורסיביות חלק 1פונקציות רקורסיביות חלק 2סיכום – סכימת מערך מקונן2קבלת החלטות מתקדמת
התאמה עם משתניםתנאי סף להתאמהתבניות מערכיםתבניות מילוניםבדיקות חברותסיכום – מנתח פקודות5אפליקציית ספר אנשי קשר
הצגת התפריטהוספת איש קשר8מנהל רשומות תלמידים
סקירת הפרויקטהוספת תלמידתרגלו בעצמכם: קומפיילר GDScript אונליין