Мазмуну:
Video: C++ ламбда деген эмне?
2024 Автор: Lynn Donovan | [email protected]. Акыркы өзгөртүү: 2023-12-15 23:50
C++ 11 жана андан кийинки тилдерде, а ламбда сөз айкашы - көбүнчө а деп аталат ламбда -бул анонимдүү функция объектисин (жабуу) функцияга аргумент катары чакырылган же берилген жерде аныктоонун ыңгайлуу жолу.
Бул жагынан алганда, Lambda C++ деген эмне?
[C++ 11: 5.1. 2/3]: The түрү ныкы ламбда - туюнтма (бул да түрү жабуу объектисинин) уникалдуу, аталышы жок бирикме классы түрү - жабуу деп аталат түрү - анын касиеттери төмөндө баяндалган. Бул класс түрү агрегат эмес (8.5.
Кошумча, эмне үчүн C++ тилинде ламбда туюнтмалары керек? C++ киргизилген функция объекттери, же функторлор. Функторлор болуп саналат операторду () ашыкча жүктөгөн класстар. Haskell, C#, Erlang же F# сыяктуу башка программалоо тилдери функциянын аныктамаларын алар колдонулган жерде иштетет. Булар болуп саналат катары белгилүү lambda туюнтмалары анткени анын синтаксиси болуп саналат шыктандырган ламбда эсептөө.
Ошондой эле суроо туулат, C++ тилинде ламбда функциясын кантип өткөрүп бересиз?
Ламбданы функцияга аргумент катары өткөрүүнүн 3 жолу:
- Lambda объектисин жарыялоо үчүн std::функциясын колдонуу. void lambdaExample1()
- Функциянын түрүн жарыялоо жана ага ламбда функциясын дайындоо үчүн typedef колдонуу. void lambdaExample2()
- Ламбданы жарыялоо үчүн структураны колдонуу.
Ламбда жабуу деген эмне?
А ламбда Негизинен функцияларды жарыялоонун стандарттык ыкмасы эмес, сапта аныкталган функция. Lambdas көп учурда объект катары айланып өтүшү мүмкүн. А жабуу анын денесинен сырткы талааларга шилтеме кылуу менен анын айланасындагы абалын курчап турган функция.