תוכן עניינים:

מהי למבדה C++?
מהי למבדה C++?

וִידֵאוֹ: מהי למבדה C++?

וִידֵאוֹ: מהי למבדה C++?
וִידֵאוֹ: Lambdas in C++ 2024, נוֹבֶמבֶּר
Anonim

ב-C++11 ואילך, א למבדה ביטוי - המכונה לעתים קרובות א למבדה -הוא דרך נוחה להגדיר אובייקט פונקציה אנונימית (סגירה) ממש במיקום שבו הוא מופעל או מועבר כארגומנט לפונקציה.

לגבי זה, איזה סוג הוא Lambda C++?

[C++11: 5.1. 2/3]: ה סוּג של ה למבדה -ביטוי (שהוא גם ה סוּג של אובייקט הסגירה) הוא מחלקה ייחודית ללא שם ללא איחוד סוּג - קראו לסגירה סוּג - שתכונותיו מתוארות להלן. הכיתה הזאת סוּג אינו מצטבר (8.5.

בנוסף, מדוע אנו זקוקים לביטויי למבדה ב-C++? C++ הציג אובייקטי פונקציה, או פונקציות. פונקציות הם מחלקות המעמיסות על האופרטור(). שפות תכנות אחרות כמו Haskell, C#, Erlang או F# מאפשרות הגדרות פונקציות בדיוק היכן שהן משמשות. אלה הם ידוע כ ביטויי למבדה כי התחביר שלו הוא בהשראת למבדה חֶשְׁבּוֹן.

השאלה היא גם איך מעבירים פונקציית למבדה ב-C++?

3 דרכים להעביר למבדה כארגומנט לפונקציה:

  1. שימוש בפונקציה std:: כדי להכריז על אובייקט למבדה. void lambdaExample1()
  2. שימוש ב-typedef כדי להכריז על סוג פונקציה ולהקצות לו פונקציית למבדה. void lambdaExample2()
  3. שימוש ב-struct כדי להכריז על למבדה.

מהי סגירת למבדה?

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