Menu
CoddyTech

פונקציות Lambda חלק 1

חלק מהיחידה לוגיקה וזרימת תוכנית במסלול ה-GDScript של Coddy. שיעור 54 מתוך 78.

lambda היא פונקציה ללא שם, שנכתבת כערך. אפשר לאחסן אותה במשתנה כמו מספר או מחרוזת:

var add = func(a, b): return a + b

היא מתחילה ב־func, בפרמטרים ובנקודתיים, כמו כל פונקציה, אבל אין לה שם. גוף שמכיל פקודה אחת יכול להישאר באותה שורה.

כדי להריץ למבדה ששמורה במשתנה, יש לקרוא למתודת call() שלה עם הארגומנטים:

print(add.call(5, 3))
8

add(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 עבור "משהו שאפשר לקרוא לו".

challenge icon

אתגר

קל

התוכנית קוראת שלושה מספרים שלמים, a, b ו-c.

  1. צרו lambda עם שלושה פרמטרים, x, y ו-z, שמחזירה את המכפלה שלהם, ושמרו אותה במשתנה בשם multiply.
  2. קראו לה עם 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, והדפיסו את התוצאה
quiz iconבחנו את עצמכם

השיעור הזה כולל חידון קצר. התחילו את השיעור כדי לענות עליו ולעקוב אחרי ההתקדמות.

כל השיעורים ביחידה לוגיקה וזרימת תוכנית

תרגלו בעצמכם: קומפיילר GDScript אונליין