תוכן עניינים:
וִידֵאוֹ: מהי למבדה C++?
2024 מְחַבֵּר: Lynn Donovan | [email protected]. שונה לאחרונה: 2023-12-15 23:47
ב-C++11 ואילך, א למבדה ביטוי - המכונה לעתים קרובות א למבדה -הוא דרך נוחה להגדיר אובייקט פונקציה אנונימית (סגירה) ממש במיקום שבו הוא מופעל או מועבר כארגומנט לפונקציה.
לגבי זה, איזה סוג הוא Lambda C++?
[C++11: 5.1. 2/3]: ה סוּג של ה למבדה -ביטוי (שהוא גם ה סוּג של אובייקט הסגירה) הוא מחלקה ייחודית ללא שם ללא איחוד סוּג - קראו לסגירה סוּג - שתכונותיו מתוארות להלן. הכיתה הזאת סוּג אינו מצטבר (8.5.
בנוסף, מדוע אנו זקוקים לביטויי למבדה ב-C++? C++ הציג אובייקטי פונקציה, או פונקציות. פונקציות הם מחלקות המעמיסות על האופרטור(). שפות תכנות אחרות כמו Haskell, C#, Erlang או F# מאפשרות הגדרות פונקציות בדיוק היכן שהן משמשות. אלה הם ידוע כ ביטויי למבדה כי התחביר שלו הוא בהשראת למבדה חֶשְׁבּוֹן.
השאלה היא גם איך מעבירים פונקציית למבדה ב-C++?
3 דרכים להעביר למבדה כארגומנט לפונקציה:
- שימוש בפונקציה std:: כדי להכריז על אובייקט למבדה. void lambdaExample1()
- שימוש ב-typedef כדי להכריז על סוג פונקציה ולהקצות לו פונקציית למבדה. void lambdaExample2()
- שימוש ב-struct כדי להכריז על למבדה.
מהי סגירת למבדה?
א למבדה היא בעצם פונקציה שמוגדרת בשורה ולא השיטה הסטנדרטית להכרזת פונקציות. למדות לעתים קרובות ניתן להעביר כאובייקטים. א סגירת מעגל היא פונקציה הסוגרת את מצבה הסובב על ידי הפניה לשדות חיצוניים לגופו.