Мазмуну:

C++ ламбда деген эмне?
C++ ламбда деген эмне?

Video: C++ ламбда деген эмне?

Video: C++ ламбда деген эмне?
Video: Лямбда зонд. Зачем нужен? Как работает? Где стоит? НАГЛЯДНО! 2024, Май
Anonim

C++ 11 жана андан кийинки тилдерде, а ламбда сөз айкашы - көбүнчө а деп аталат ламбда -бул анонимдүү функция объектисин (жабуу) функцияга аргумент катары чакырылган же берилген жерде аныктоонун ыңгайлуу жолу.

Бул жагынан алганда, Lambda C++ деген эмне?

[C++ 11: 5.1. 2/3]: The түрү ныкы ламбда - туюнтма (бул да түрү жабуу объектисинин) уникалдуу, аталышы жок бирикме классы түрү - жабуу деп аталат түрү - анын касиеттери төмөндө баяндалган. Бул класс түрү агрегат эмес (8.5.

Кошумча, эмне үчүн C++ тилинде ламбда туюнтмалары керек? C++ киргизилген функция объекттери, же функторлор. Функторлор болуп саналат операторду () ашыкча жүктөгөн класстар. Haskell, C#, Erlang же F# сыяктуу башка программалоо тилдери функциянын аныктамаларын алар колдонулган жерде иштетет. Булар болуп саналат катары белгилүү lambda туюнтмалары анткени анын синтаксиси болуп саналат шыктандырган ламбда эсептөө.

Ошондой эле суроо туулат, C++ тилинде ламбда функциясын кантип өткөрүп бересиз?

Ламбданы функцияга аргумент катары өткөрүүнүн 3 жолу:

  1. Lambda объектисин жарыялоо үчүн std::функциясын колдонуу. void lambdaExample1()
  2. Функциянын түрүн жарыялоо жана ага ламбда функциясын дайындоо үчүн typedef колдонуу. void lambdaExample2()
  3. Ламбданы жарыялоо үчүн структураны колдонуу.

Ламбда жабуу деген эмне?

А ламбда Негизинен функцияларды жарыялоонун стандарттык ыкмасы эмес, сапта аныкталган функция. Lambdas көп учурда объект катары айланып өтүшү мүмкүн. А жабуу анын денесинен сырткы талааларга шилтеме кылуу менен анын айланасындагы абалын курчап турган функция.